990 likes | 1.17k Vues
Sistemas de Base de Dados. Michel Ferreira Email: michel@ncc.up.pt (melhor contacto!) Gabinete: CIUP, Gab. 213, 22 6078830 P á gina da disciplina: http://www.ncc.up.pt/~michel/MI/SBD/. Bibliografia. Livro principal:
E N D
Sistemas de Base de Dados • Michel Ferreira • Email: michel@ncc.up.pt (melhor contacto!) • Gabinete: CIUP, Gab. 213, 22 6078830 • Página da disciplina: http://www.ncc.up.pt/~michel/MI/SBD/ Michel Ferreira, DCC - FCUP
Bibliografia Livro principal: • Fundamentals of Database Systems, por Elmasri e Navathe (3rd edition), Addison Wesley, 1999. Recomendados: • Database Systems: The Complete Book, by Garcia-Molina, Ullman, and Widom (first edition), Prentice Hall, 2002. • A Guide to the SQL Standard: A User's Guide to the Standard Database Language SQL, (fourth edition), by C.J. Date and Hugh Darwen, Addison-Wesley, 2000. • PostgreSQL: Introduction and Concepts, Bruce Momjian, Addison-Wesley, 2001. Podem ser utéis também: • Livros sobre Unix, Perl, PHP e CGI. Michel Ferreira, DCC - FCUP
Avaliação • Um trabalho (a definir na 3ª aula): 30% da nota. • Um exame final: 70% da nota. Michel Ferreira, DCC - FCUP
Programa • O Modelo Relacional de Bases de Dados • Bases de Dados Orientadas por Objectos, Bases de Dados “object-relational”, Bases de Dados semi-estruturadas e Bases de Dados XML. • Bases de Dados Lógicas (dedutivas). • “Online Analytical Processing” (OLAP) e “Datawarehousing” Michel Ferreira, DCC - FCUP
O que é um sistema de gestão de BD? • Gere uma grande quantidade de dados. 2. Permite um acesso eficiente a uma grande quantidade de dados. 3. Permite acesso concorrente a uma grande quantidade de dados. • Exemplo: banco e as caixas Multibanco. 4. Permite acesso seguro (atómico) a uma grande quantidade de dados. • Imaginem duas pessoas a editar o mesmo ficheiro UNIX – a última a gravar «ganha» - com o problema de duas pessoas levantarem dinheiro da mesma conta via Multibanco ao mesmo tempo – o novo saldo fica errado, qualquer que seja a pessoa a gravar em último lugar. Michel Ferreira, DCC - FCUP
Modelo Relacional • Baseado em tabelas, como: conta # nome saldo 12345 Sandra 1000.21 34567 Alice 285.48 … … … • É usado na maioria dos SGBD’s actuais. Michel Ferreira, DCC - FCUP
O Mercado dos SGBD’s • Empresas de SGBD’s Relacionais – Oracle, Sybase – estão entre as maiores empresas de software do mundo. • IBM fornece o seu sistema relacional DB2. • A Microsoft fornece o SQL-Server, mais o Microsoft Access para SGBD’s baratos sobre computadores pessoais, respondidos por sistemas “lite” da concorrência. • As empresas de BD relacionais também começam a sofrer a concorrência de empresas de “BD orientadas-a-objectos”. • Muitos sistemas começam a ser “object-relational”, mantendo o núcleo relacional e permitindo extensões baseadas em sistemas OO. Michel Ferreira, DCC - FCUP
Três aspectos no estudo de SGBD’s 1. Modelação e desenho de Bases de Dados. • Permite a análise de questões antes de passar a uma fase de implementação. • Programação: consultas e operações à BD como actualização (update). • SQL = “intergalactic dataspeak.” 3. Implementação de SGBD’s. Michel Ferreira, DCC - FCUP
Linguagens de Consulta Empregado Departamento SELECT DirectorFROM Empregado, DepartamentoWHERE Empregado.nome = "Clark Kent” AND Empregado.Dept = Departamento.Dept Linguagem de Consulta Data definition language (DDL) ~ semelhante a type defs em C ou Pascal Data Manipulation Language (DML) Consulta (SELECT) UPDATE < nome da relação> SET <atributo> = < novo-valor> WHERE <condição> Nome Dept Dept Director SQL Michel Ferreira, DCC - FCUP
Linguagens “Host” C, C++, Fortran, Lisp, COBOL Progr. Aplicação Linguagem “host” é completamente geral (Turing complete) mas não fornece suporte primitivo a BD’s. Linguagem de consulta — menos geral “não procedimental”, e optimizável SGBD Chamadas à BD Variáveis locais (Memória) (Armaz.) Michel Ferreira, DCC - FCUP
O modelo relacional é bom para: Grande quantidade de dados —> operações simples Navegar dentro de um número pequeno de relações Aplicações difíceis para o modelo relacional: • Desenho de circuitos VLSI (CAD em geral) • CASE • Informação gráfica ALU ADDER CPU A FA Adder ALU ADDER Michel Ferreira, DCC - FCUP
Onde o número de “relações” é grande, relacionamentos são complexos • Modelo de Dados Orientado a Objectos • Modelo de Dados Lógico Modelo de Dados Orientado a Objectos 1. Objectos Complexos – Estrutura embricada (apontadores ou referências) • Encapsulamento, conjunto de funções de Acesso/Métodos 3. Identidade de Objecto • Herança – Definição de novas classes com base em classes antigas Modelo de Objectos: normalmente a procura de objectos é por navegação explicita Existe também uma linguagem de consulta em alguns sistemas Michel Ferreira, DCC - FCUP
Modelo de Dados Lógico (Horn Clause) • Prolog, Datalog Se A1 e A2 então B prolog B:- A1 and A2 Funções s(5) = 6 (sucessor) Predicados com Argumentos sum(X,Y,Z) X + Y = Z sum(X,0,X) significa X + 0 = X (verdadeiro para todo X) sum(X,s(Y),s(Z)):-sum(X,Y,Z) significa X+(Y+1) = (Z+1) se X + Y = Z Mais poderoso que o relacional Pode calcular o fecho transitivo edge(X,Y) path(X,Y) :- edge(X,Y) path(X,Z) :- path(X,Y) & edge(Y,Z) Michel Ferreira, DCC - FCUP
60’s 70's 80's 90’s agora Hierárquico Rede Relacional Escolha da maioria das aplicações BD OO BD Dedutivas Michel Ferreira, DCC - FCUP
Modelo Entidade-Relacionamento • Entidades: • objecto ou conceito do mundo real com uma existência independente • com existência física, e.g. carro, empregado, produto, aluno, etc. • com existência conceptual: uma empresa, uma profissão, um curso, etc. • Atributos: • propriedades que caracterizam (e estão associadas) uma entidade • atributos de Pessoa: nome, sexo, data nascimento, morada, etc. • Relacionamentos • representam interacções entre 2 ou mais entidades trabalha(empregado, departamento) Michel Ferreira, DCC - FCUP
Modelo ER: Atributos • Valores dos atributos = Informação da BD • Domínios de atributos • conj. de valores que podem ser atribuídos a um atributo de uma entidade. • Tipos de atributos: • atributo simples ou atómico: não é divisível. • atributo composto: divisível em atributos simples com significado independente • o atributo Endereço da entidade PESSOA pode ser decomposto em: Rua, Cidade e CódigoPostal. • atributo de valor único: têm apenas um valor para uma determinada entidade • atributo de valores-múltiplos: pode tomar 1 ou mais valores de um conjunto de valores para a mesma entidade. • entidade CARRO, atributo Cor-do-carro (vermelho, branco, cinza, …) • entidade PESSOA, atributo TítuloAcadémico (licenciado, mestre, doutor,…) Michel Ferreira, DCC - FCUP
Modelo ER: Atributos (cont.) • Tipos de atributos: • atributo derivado: pode ser derivado de outro atributo. • Idade pode ser derivado de DataNascimento • atributo com valor nulo (NULL) • quando o atributo não é aplicável a uma determinada entidade. • Ex: o atributo TítulosAcadémicos só se aplica a pessoas com curso superior, sendo nulo para as restantes. • Interpretações para o valor NULL: • o atributo não se aplica; • o valor do atributo não é conhecido ou está em falta. Michel Ferreira, DCC - FCUP
Modelo ER: Entidade Tipo • Entidade Tipo: • determina o esquema para um conjunto de entidades que partilham a mesma estrutura (atributos). • caracteriza-se por um nome e uma lista de atributos. Esquema da entidade-tipo EMPREGADO: • Atributo chave de uma entidade-tipo: • é o atributo que identifica de forma únivoca cada entidade. • deve aparecer sublinhado. Ex: EMPRESA( Nome, Endereço, Presidente) PESSOA( Nome, NumBI, DataNasc, Endereço, …) • pode ser constituído por mais do que um atributo simples. EMPREGADO(Nome, Idade, Salário) Michel Ferreira, DCC - FCUP
Requisitos de uma BDs de uma Empresa • Uma empresa está dividida em departamentos. Cada departamento tem um nome, um número e um gerente. Inclui ainda a data em que o gerente começou a gerir o departamento. O departamento pode ter várias localizações. • Um departamento controla um determinado número de projectos. Cada projecto tem um nome, um número e uma localização única. • Para cada empregado, guardar o nome, o número do BI, endereç, salário, sexo e data de nascimento. Um empregado pertence a um departamento, mas pode trabalhar em vários projectos, que não são necessáriamente controlados pelo mesmo departamento. Tomar nota do número de horas por semana que um empregado trabalha num dado projecto. Tomar nota do supervisor directo de cada empregado. • Tomar nota do número de dependentes de cada empregado para efeitos de seguro. Para cada dependente, guardar o nome, sexo, data de nascimento e grau de parentesco para o empregado. Michel Ferreira, DCC - FCUP
Construção do modelo ER para a BD-Empresa • Identificar entidades-tipo e atributos: 1. DEPARTAMENTO( Nome, Num, {Local}, Gerente, GerData) atributos com valores múltiplos: Local 2. PROJECTO( Nome, Num, {Localização}, DepCtl) 3. EMPREGADO( Nome(P,U), NumBI, Sexo, Endereço,Salário,Dnasc, Dept, Super) 4. DEPENDENTE( Empregado, DNome, Sexo, Dnasc, GrauPar) Michel Ferreira, DCC - FCUP
Construção do modelo ER para a BD-Empresa Falta representar: • 1 empregado trabalha em N projectos • num. de horas que cada empregado trabalha em cada projecto Identificar entidades-tipo e atributos: • Podemos representar esta info como: • atributo-composto-multivalor da entidade Empregado TrabalhaEm( Projecto, Horas) • atributo-composto-multivalor da entidade Projecto: Trabalhadores( Empregado, Horas) Michel Ferreira, DCC - FCUP
Relacionamentos Falta representar (entre outros): “um Departamento tem um Director que o dirige; um Director é um empregado” Dirige( Departamento, Empregado) • O esquema Dirige traduz um relacionamento entre 2 entidades, Departamento e Empregado. • No modelo ER, uma entidade não pode referenciar directamente outra entidade; tal necessidade traduz-se na definição de um relacionamento. • Outros relacionamentos: TrabalhaPara(Empregado,Departamento) Controla(Departamento,Projecto) DependeDe(Dependente,Empregado) Supervisiona(Empregado,Empregado) TrabalhaEm(Empregado,Projecto,Horas) Michel Ferreira, DCC - FCUP
Esquema da BDs Com a definição dos relacionamentos, algunds dos atributos são redundantes pelo que não devem ser incluídos no esquema. O esquema consiste: • Entidades: DEPARTAMENTO( Nome, Num, {Local}, ) PROJECTO( Nome, Num, {Localização} ) EMPREGADO( Nome(P,U), NumBI, Sexo, Endereço,Salário,Dnasc) DEPENDENTE( DNome, Sexo, Dnasc, GrauPar) • Relacionamentos: trabalhaPara(Empregado,Departamento) dependeDe(Dependente,Empregado) controla(Departamento,Projecto) dirige(Empregado,Departamento, GerData) supervisiona(Empregado,Empregado) trabalhaEm(Empregado,Projecto,Horas) • Falta analisar o tipo de participação das entidades no relacionamentos. Michel Ferreira, DCC - FCUP
Relacionamentos (Grau e Atributos) • Grau de um relacionamento: • número de entidades no relacionamento. • Ex. de um relacionamento ternário: fornece(Fornecedor, Produto, Projecto) • Relacionamentos com atributos. Horas é um atributo do relacionamento trabalhaEm(Empregado, Projecto, Horas) Michel Ferreira, DCC - FCUP
Relacionamentos (Restrições) • Restrições nos relacionamentos: • permitem limitar as combinações possíveis entre entidades participantes • Ex: um empregado trabalha para apenas um departamento. • Tipos de Restrições: • Cardinalidade dos Relacionamenos: • tipo de participação das entidades no relacionamento • 1 : N -- um para-muitos trabalhaPara(Empregado, Departamento) • M : N -- muitos-para -muitos trabalhaEm(Empregado, Projecto, Horas) • 1 : 1 -- um-para-muitos dirige(Empregado, Departamento) Michel Ferreira, DCC - FCUP
Restrições nos Relacionamentos (cont.) • Tipo de participação: • especifica se a existência de uma instância de entidade depende do seu relacionamento com outra entidade, via esse relacionamento. • Participação total (dependência existêncial) • quando todas as instâncias de uma entidade estão relacionadas com alguma instância de uma outra entidade participante no relacionamento. trabalhaPara(Empregado, Departamento) • Participação parcial • quando não se espera que todas as instâncias de uma entidade participem no relacionamento. dirige(Empregado, Departamento) Michel Ferreira, DCC - FCUP
Entidades Fracas • Entidade Fraca: • é identificada pelo seu relacionamento (relacionamento identificador) com determinadas entidades (entidade identificadora) • tem sempre participação total (dependência existêncial) em relação ao relacionamento-identificador. • Possui uma chave-parcial, que é o conjunto de atributos que univocamente determinam a entidade fraca relacionada com a mesma entidade-identificadora. • Ex: dependenDe(Dependente, Empregado) Michel Ferreira, DCC - FCUP
Modelo ER para a BDs sobre uma Empresa • Entidades-tipo: DEPARTAMENTO( Nome, Num, {Local}, ) PROJECTO( Nome, Num, Local ) EMPREGADO( Nome(P,U), NumBI, Sexo, Endereço, Salário, Dnasc ) DEPENDENTE( DNome, Sexo, Dnasc, GrauPar ) • Relacionamentos: trabalhaPara(Empregado,Departamento) N:1 total/total dependeDe(Dependente,Empregado) N:1 total/parcial controla(Departamento,Projecto) 1:N parcial/total dirige(Empregado,Departamento, GerData) 1:1 parcial/parcial supervisiona(Empregado,Empregado) 1:N parcial/parcial Supervisor Supervisionado trabalhaEm(Empregado,Projecto,Horas) M:N total/total Michel Ferreira, DCC - FCUP
Diagramas ER • Ênfase na representação dos esquemas em vez de instâncias de entidades e relacionamentos. • Notação para os diagramas: Atributo Atributo-Chave Entidade-Tipo Atributo-Multivalor Entidade-Fraca Atributo-Derivado Relacionamento Atributo-Composto Relacionamento- identificador Michel Ferreira, DCC - FCUP
E1 R E2 Diagramas ER (cont.) Participação-total de E2 em R 1 N 1:N E1 R E2 Restrição-estrutural da participaçaõ de E em R R E (min,max) • Uma entidade E participa num relacionamento R com restrição (min,max) em que • 0>= min<= max e max >= 0, se para cada entidade e de E, e participa pelo menos min e no máximo max instâncias do relacionamento R. • min = 0 -- participação parcial Michel Ferreira, DCC - FCUP
Exemplo Restrição-Estrutural • No diagrama: • um empregado trabalha para um departamento • Num departamento trabalham pelo menos 4 empregados • Nomes para as entidades-tipo, atributos e relacionamentos deve ser feita com critério: • entidades - nomes singular • atributos - nomes • relacionamentos - nomes ou verbos de forma a facilitar a leitura da esquerda para a direita (1,1) (4,N) Empregado Departamento trabalhaPara Michel Ferreira, DCC - FCUP
O Modelo EER (ER Extendido) • BDs recentes (Multimédia, GIS, CAD/CAM,…) requerem novos conceitos semânticos de modelação: • subclasse, superclasse, especialização e generalização, herança de atributos, etc. • Subclasses e Superclasses • uma subclasse corresponde a um sub-conjunto de entidades com alguma característica comum e pertencentes à mesma entidade-tipo • superclasse corresponde à entidade-tipo que aglutina os vários sub-conjuntos de entidades, i.e. subclasses. • Ex: Empregado superclasse Secretárias Engenheiros Técnicos Directores subclasses Michel Ferreira, DCC - FCUP
Director Secretária Empregado Empregado isa isa O Modelo EER (Relacionamento ISA) • O relacionamento ISA (ou superclasse/subclasse) caracteriza a ligação entre as subclasses e a respectiva superclasse • uma entidade membro de uma subclasse representa a mesma entidade-física de um membro da superclasse, apenas os “papeis” são diferentes. • Ex. A entidade Director de nome X é a mesma entidade X de Empregado; Técnico Empregado isa Michel Ferreira, DCC - FCUP
EER: Herança de Atributos • As subclasses herdam todos os atributos da sua superclasse • uma subclasse com todos os atributos que herda da superclasse, é uma entidade-tipo. • Porquê a divisão em subclasses? • Certos atributos aplicam-se a apenas algumas instâncias da superclasse • Alguns relacionamentos podem ter participação de apenas alguns membros de uma subclasse Michel Ferreira, DCC - FCUP
EER: Especialização • Especialização • é o processo de de definição do conjunto das subclasses de uma entidade-tipo (superclasse da especialização) • e.g. {Secretária, Engenheiro, Técnico} especializa Empregado com base no tipo de trabalho. • podemos ter várias especializações da mesma entidade-tipo com base em diferentes características. • Podemos associar atributos específicos (extra) a cada subclasse • estabelecer relacionamentos-tipo específicos entre uma subclasse e outras entidades-tipo ou outras subclasses Michel Ferreira, DCC - FCUP
Empregado EmpPrazo EmpEfectivo Escalão Diagrama EER Nome • 3 especializações de Empregado NumBI d d d Director Secretária Técnico Engenheiro Salário Salário Efiliado dirige EngTipo Qualificação VelEscrita Sindicato Projecto Michel Ferreira, DCC - FCUP
d EER: Generalização • Generalização: processo funcionalmente inverso da especialização. • eliminam-se as diferenças entre várias entidades-tipo, identificam-se as caracteristicas comuns que passarão a caracterizar uma nova superclasse da qual as entidades-tipo originais são subclasses especiais. Carro(Matricula, Nreg, Npass, VelMax, Preço) Camião(Matricula, Nreg, Neixos, Tonelagem, Preço) generalizando temos: Nreg Veículo Matricula Preço Carro Camião Tonelagem Npass Neixos VelMax Michel Ferreira, DCC - FCUP
d Tipos de Especialização/Generalização • Especialização definida-por-atributo • quando a divisão em subclasses se basei numa condição de membro • e.g. condição tipoTrabalho=“secretária” determina quais dos empregados vão pertencer à subclasse Secretária. • Especialização definida-por-utilizador • quando não existe a condição. • Especialização disjunta • quando as subclasses são disjuntas, i.e. cada entidade pode ser membro de no máximo uma subclasse de especialização. • Especialização com sobreposição • quando a mesma entidade pode pertencer a mais do que uma subclasse, e.g. a superclasse Pessoa pode decompor-se em subclasses Empregado, Estudante, Licenciado (e.g. um assistente é um empregado da universidade, é licenciado e é aluno de doutoramento) o Michel Ferreira, DCC - FCUP
Tipos de Especialização/Generalização (cont.) • Especialização Total (linhas duplas nos diagramas) • quando toda a entidade de uma superclasse tem de ser membro de alguma sub-classe. • e.g. especialização {EmpEfectivo, EmpPrazo} de Empregado. Todos empregados estão numa das subclasses. • Especialização Parcial (linha simples nos diagramas) • permite que uma entidade não pertença a qualquer das subclasses. • Temos assim 4 tipos de especialização: • disjunta total; disjunta parcial; sobreposição total; sobreposiçaõ parcial • o tipo de especialização é determinado a partir do significado na vida real • A generalização de uma superclasse é habitualmente total • contém as entidades das subclasses de onde foi derivada. Michel Ferreira, DCC - FCUP
Filme (Título, Ano, Duração, Tipo) Esquema atributos tabela Filme Título Ano Duração Tipo Zorro 1998 cor 120 tuplo Guerra das Estrelas cor 124 cor 104 1991 Mighty Ducks Modelo Relacional • Introduzido por Codd (1970) • Base de Dados = Conjunto de relações • Relação <==> Tabela 1977 Michel Ferreira, DCC - FCUP
Esquema Relacional de uma BDs Empregado(Pnome,Unome,EBI,Dnasc,Morada,Sexo,Salário,SuperBI,Ndep) Departamento(Dnome,Dnum, DirBI, DirData) Locais_Dep(Dnum,Dlocal) Projecto(Pnome,Pnum,Plocal) TrabalhaEm(EBI,Pnum,Horas) Dependente(EBI,Nome,Sexo,Dnasc,GrauParentesco) Michel Ferreira, DCC - FCUP
Modelo Relacional: conceitos • Domínio: • conjunto de valores de um dado tipo que caracterizam um atributo • Tuplos: • sequência ordenada de valores (ordem da sequência é importante) • tuplos de uma relação (ou tabela) não têm ordem • os valores das componentes de um tuplo são atómicos • no relacional não pode haver atributos compostos ou multivalor • Chave de uma relação R • identifica de forma única os tuplos de R • conjunto mínimo de atributos de R, t.q. não existem 2 tuplos distintos de R com valores iguais nesses atributos. • Uma relação pode ter várias chaves candidatas • chave primária; chaves alternativas Michel Ferreira, DCC - FCUP
Restrições Intrínsecas do Relacional • Integridade de entidade • os valores da chave-primária não podem ser nulos • Unicidade da chave • não podem existir 2 tuplos diferentes com valores iguais na chave • Chave externa • conjunto de atributos de uma relação que referenciam a chave de outra relação • Integridade referêncial • um tuplo de uma relação que se refira a uma outra relação, tem de se referir a um tuplo existente nessa relação • garante consistência entre tuplos de 2 relações • e.g. os tuplos correspondentes ao empregado-supervisor com EBI 3456789 e ao departamento número 5 têm de existir, dado o seguinte empregado: Empregado(João,Pinto,7654321,19975-03-04,R. das Fontainhas,M,250000,3456789,5) Michel Ferreira, DCC - FCUP
Interpretação de uma relação • Relações uniformizam a representação de factos sobre entidades e relacionamentos • Um esquema de uma relação deve ser visto como uma declaração • Esquema de BD relacional = conjunto de esquemas relacionais + conjunto de restrições de integridade • Operações no modelo relacional: • actualizações: inserir, remover e modificar • consultas: álgebra relacional Michel Ferreira, DCC - FCUP
Operação inserir • Permite inserir um ou mais tuplos numa tabela • pode violar qualquer dos 4 tipos de restrições: • domínio: se um dos valores não pertencer ao domínio • chave: o valor da chave do novo tuplo já existe num outro tuplo da tabela • integridade de entidade: se o valor da chave do novo tuplo for null • integridade referêncial: se o valor de uma chave externa referir um tuplo não existente. • Se uma das restrições for violada, opta-se por: • rejeitar a inserção (com aviso ao utilizador) • ou, tentar corrigir a razão para a rejeição ocorrer. Michel Ferreira, DCC - FCUP
Operação remover • remove tuplos de valores de uma tabela • pode violar apenas a integridade referêncial: • no caso de o tuplo a remover for referenciado por uma das chaves-externas de outro tuplo naBDs. • Requer uma condição sobre os atributos de forma a selecionar o tuplo ou tuplos a serem removidos • remover todos os empregados do departamento 10. • Caso ocorra violação, opta-se por: • rejeitar a operação, ou • procurar propagar a operação e remover todos os tuplos que referenciam o que está a ser removido, ou • alterar para null os valores dos atributos dos tuplos que referenciam o que está a ser removido • Operação modificar = remover+inserir (regras destas operações) Michel Ferreira, DCC - FCUP
Sexo ... Conversão do Modelo ER para o Modelo Relacional • Passo 1: entidade-tipo relação • atributos simples da entidade atributos da relação • atributos compostos atributos individuais na relação • chave da entidade chave da relação Pnome EBI Nome Empregado Unome Empregado Pnome Unome EBI Sexo ... Michel Ferreira, DCC - FCUP
... ER Relacional • Passo 2: entidade-fraca relação • Seja W uma entidade-fraca e E a entidade-identificadora de W: • Criar uma relação R em que: • atributos simples de W atributos de R • chave-principal de E e chave-parcial de W chave-principal de R Nome Empregado Dependente EBI dependeDe ... Chave-externa Dependente EBI Nome Sexo ... Michel Ferreira, DCC - FCUP
... ER Relacional • Passo 3: relacionamento binário 1:1 R(E1,E2) • Sejam S e T as relações correspondentes às entidade E1 e E2, respectivamente. • Escolhes-se uma das relações, e.g. S (a que corresponde à entidade com participação total em R) e: • incluir como chave externa em S a chave-principal de T • incluir todos atributos simples do relacionamento R na relação S Dnum Empregado Departamento EBI dirige (0,1) (1,1) DirData Chave-externa Departamento Dnome DnumDirBI DirData Michel Ferreira, DCC - FCUP
... ER Relacional • Passo 4: relacionamento binário 1:N R(E1,E2) • Sejam S e T as relações correspondentes às entidade E1 e E2, respectivamente. • Escolhes-se a relação que corresponde à entidade participante do lado N em R, suponha-se que é S: • incluir como chave externa em S a chave-principal de T • incluir todos atributos simples do relacionamento R na relação S Dnum Departamento Empregado EBI trabalhaPara 1 N Chave-externa Empregado Pnome ... EBI ... DNum Michel Ferreira, DCC - FCUP