Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados Modelagem de Banco de Dados Modelo Relacional (R) Projeto de BD – Uma Visão Panorâmica Revisão Projeto de BD – Uma Visão Panorâmica Revisão 1. Coleta e análise dos requisitos. 2. Projeto conceitual do Banco de dados. 3. Escolha de um SGBD. 4. Mapeamento do modelo de dados. 5. Projeto físico do Banco de dados. 6. Implementação e implantação no SGBD escolhido. Modelo Relacional – R : Definição Def. O MODELO RELACIONAL representa um banco de dados como uma coleção de relações. Uma relação é uma tabela de valores, onde cada linha é um conjunto de valores relacionados e cada coluna um conjunto de valores de mesmo tipo e significado. Coluna Tabela Cliente Linha Página 2 R - Características • Foi proposto por Ted Codd em 1970; • Versões comerciais disponibilizadas no início da década de 80 (SQL/DS; ORACLE); • Seu formalismo usa teoria de conjuntos e lógica de primeira ordem; • É um método declarativo de especificar dados e consultas; Página 3 R – Conceitos informais • Relação é uma tabela de valores • Cada linha da tabela representa fatos do mundo real, chamada tupla no modelo formal • Cada coluna da tabela tem um cabeçalho que indica o significado do item de dado na coluna, chamado atributo no modelo formal • Cada linha tem pelo menos uma chave que é um subconjunto de valores que identifica unicamente a linha Página 4 R – Exemplo de Relação Página 5 R – Definições formais Definições formais Página 6 R – Domínio e Cardinalidade Def. um domínio D é um conjunto de valores atômicos e a cardinalidade de D, denotada por |D|, é o número de valores em D. Exemplos: D 1 =Domínio(sexo)={F, M}; |D 1 |=2 ? D 2 =Dom(funcionario.idade)= [15, 80]; |D 2 |=66 ? • Um domínio tem também um tipo de dado ou formato • funcionario.idade: inteiro • fone: (dd)dddd.dddd, onde cada “d” representa um dígito númerico decimal, sendo os dois primeiros um código de área Página 7 R – Esquema de relação e atributo Def. O esquema de relação descreve a relação e é definido por R(A1 , A2 , ..., An), onde R é o nome da relação e cada Ai é o nome de um atributo. Def. O atributo é o nome do papel desempenhado por algum domínio na relação Exemplo: EMPREGADO(cpf, nome, endereco, sexo) • Dom(cpf)=ddd.ddd.ddd-dd • Dom(nome)=cadeia de caracteres que representam nomes de pessoas • Dom(endereco)=cadeia de caracteres que representam endereços • Dom(sexo)={F, M} Página 8 R – Tupla, valor de atributo e NULL Def. uma tupla t é um conjunto ordenado de valores denotado por t=<v1 , v2 ..., vn >, onde cada vi é derivado do domínio apropriado de Ai ou é um valor nulo. Def. o valor nulo, denotado por NULL, é um valor especial para representar valores desconhecidos ou que não se aplicam. • Se t=<v1 , v2 ..., vn > então t[Ai ] = t.Ai = vi • Exemplo: – EMPREGADO(cpf, nome, endereco, sexo) – empregado=<12363289544, 'John Smith', '101 Main St. Atlanta, GA 30332', 'M'> – empregado.sexo='M' • Um domínio pode ser definido por um tipo. Ex: int, date Página 9 R – Relação, estado, grau e cardinalidade Def. uma relação r de um esquema R(A 1 , A 2 , ..., A n ), denotado por r(R), é um conjunto de tuplas r={t 1 , t 2 , ..., tm }. Obs: • O estado da relação r reflete as tuplas válidas que representam um estado particular do mundo real • O esquema R é relativamente estático, mas em geral, o estado da relação r é dinâmico; • n é o grau do esquema da relação; • m é a cardinalidade da relação; Página 10 R – Características das relações • as tuplas em uma relação não possuem ordem; • os atributos em uma tupla estão ordenados de acordo com o esquema da relação; • não há atributos compostos ou multivalorados no modelo relacional normalizado, pois todos os atributos são atômicos; • NULL é um valor especial para representar valores desconhecidos ou que não se aplicam; • um esquema de relação pode ser interpretado como uma afirmação ou asserção sobre a estrutura da relação; • uma tupla pode ser interpretada como um fato ou instância da afirmação; • uma relação pode representar uma entidade ou um relacionamento do modelo ER; Página 11 R – Restrições e suas categorias Def. RESTRIÇÕES são condições que devem ser mantidas por todos os estados válidos das relações CATEGORIAS DE RESTRIÇÕES: • Inerentes: são características do modelo de dados, por exemplo, não há atributo composto no modelo R; • Baseadas em esquema: podem ser expressas no modelo de dados, por exemplo, restrição de domínio; • Baseadas na aplicação: não podem ser expressas no modelo de dados, portanto devem ser implementadas por meio de programas de aplicação; Página 12 R – Superchave Def. SUPERCHAVE é um subconjunto de atributos SCh do esquema de relação R, tal que em qualquer estado válido r de R não existem duas tuplas com a mesma combinação de valores para os atributos de SCh Sejam as tuplas ti, tj com i≠j ENTÃO ti[SCh] ≠ tj[SCh] OBS: SCh=R é uma superchave, pois a relação r é um conjunto Página 13 R – Chave Def. CHAVE Ch de R é uma superchave de R tal que a remoção de qualquer atributo de Ch gera um subconjunto Ch' que não é superchave de R Obs: • uma relação pode ter mais de uma chave, cada uma é chamada chave candidata, e uma delas é chamada chave primária PK; • a Integridade de Entidade é uma restrição inerente ao Modelo R e define que a chave primária não pode ser nula. Página 14 R–Chave estrangeira e integridade referencial Def. Uma CHAVE ESTRANGEIRA FK de uma relação R que referencia a relação S é um conjunto de atributos FK de R com o mesmo domínio da chave primária PK de S tal que para qualquer tupla r de R r[FK] é nulo ou existe s[PK] tal que r[FK]=s[PK] Seja FKi (R) = PK(S) então para toda tupla r em R Existe s em S | r[FKi ]= s[PK] ou r[FKi ]=NULL Uma chave estrangeira FK(R)=PK(S) define uma INTEGRIDADE REFERENCIAL de R para S Página 15 R – Esquema de BD Def. um Esquema de BD é um conjunto de esquemas de relações que pertencem ao BD S = {R 1 , R 2 , ..., R n } Página 16 R – Exemplo de Esquema de BD Company Página 17 R–Integridade referencial em esquema de BD Página 18 R–Esquema de BD, de relações e suas chaves COMPANY = {employee, department, dept_locations, project, works_on, dependent} employee(fname, minit, lname, ssn, bdate, address, sex, salary, superssn, dno) dependent(essn,dependent_name, sex, bdate, relationship) department(dname, dnumber, mgrssn, mgrstartdate) dept_locations(dnumber, dlocation) project(pname, pnumber, plocation, dnum) works_on(essn, pno, hours) Página 19 R – Chave primária PK(employee)=ssn PK(dependent)=(essn,dependent_name) PK(department)=dnumber PK(dept_locations)=(dnumber, dlocation) PK(project)=pnumber PK(works_on)=(essn, pno) Página 20 R–Integridade referencial – Chave estrangeira FK dno (employee)=PK(department) FK superssn (employee)=PK(employee) FK essn (dependent)=PK(employee) FK mgrssn (department)=PK(employee) FK dnumber (dept_locations)=PK(department) FK dnumber (project)=PK(department) FK essn (works_on)=PK(employee) FK pno (works_on)=PK(project) Página 21 R – Restrições de domínio Dom(employee.sex)=Dom(dependent.sex)={'M', 'F'} Dom(employee.bdate)=DATE Dom(department.mgrstartdate)=DATE Dom(employee.salary)=DECIMAL(10, 2) Dom(department.dnumber)=Dom(employee.dno) =Dom(project.dnum)=Dom(project.pnumber) =Dom(works_on.pno)=INTEGER Página 22 R–Operações no BD e violação de restrições Vamos estudar as operações de inserir – INSERT; excluir – DELETE; e alterar - UPDATE e a manutenção da consistência do BD ou seja, execução das operações sem violar as restrições modeladas. A Instância do BD Empresa a seguir será utilizada para ilustrar as alternativas de tratamento das violações de restrições nas operações acima. Página 23 R–Violação de restrições em INSERIR EMPREGADO(fname, minit, lname, ssn, bdate,address, sex, salary, superssn, dno) Inserir empregado<'cecilia', 'F','Ribeiro', NULL, '05-04-1960', 'Rua Esmeralda, 35, Uberlandia, MG', F, 28000, NULL, 4> empregado.ssn=NULL => viola restrição integridade de entidade Inserir empregado<'cecilia', 'F','Ribeiro', 123456789, '05-04-1960', 'Rua Esmeralda, 35, Uberlandia, MG', F, 28000, NULL, 4> empregado.ssn=123456789 => viola restrição de chave Inserir empregado<'cecilia', 'F','Ribeiro',677678989, '05-04-1960', 'Rua Esmeralda, 35, Uberlandia, MG', F, 28000, NULL, 7> empregado.dno=7 => viola restrição integridade referencial Página 25 R–Violação de restrição em EXCLUIR EMPREGADO(fname, minit, lname, ssn, bdate, address, sex, salary, superssn, dno) DEPARTAMENTO(dname, dnumber, mgrssn, mgrstartdate) FK dno (empregado)=PK(departamento) Excluir tuplas em DEPARTAMENTO com dnumber=5 => viola restrição de integridade referencial FK dno (empregado) Opções de tratamento de violação de restrições em exclusão: restrict: rejeita a exclusão ? cascade: propaga a exclusão ? set null: modifica valores de atributos que ? referenciam a causa das violações Exemplo: Qual o resultado da operação acima na instância do BD Empresa anterior, considerando cada uma das três opções? Página 26 R–Violação de restrição em ALTERAR A operação ALTERAR pode ser interpretada como uma operação Excluir seguida de Inserir, portanto está sujeita às mesmas violações, inclusive às opções de tratamento de violações mostradas anteriormente, a saber, restrict, cascade e set null. Página 27 Atividade 3 Descreva o Esquema de BD no modelo R, incluindo as restricoes para um Sistema de Eventos Esportivos-SEE especificado a seguir. A principio vamos descrever o Esquema de BD SEE independente do Esquema Conceitual especificado por meio do diagrama EER. O SEE tem como objetivo armazenar dados de modalidades esportivas (ex: natação), categorias (ex: 100m costas), competições, locais, pessoas e equipes participantes. Além disso, armazenar dados de empresas patrocinadoras e resultados das competições. Uma categoria deve ter nome, tipo (individual ou coletiva) e gênero. Cada competição tem uma data, horário, local e refere-se a uma fase da categoria, sendo que deve existir pelo menos uma fase final por categoria. Os atletas ou equipes se inscrevem em categorias e participam de competições. Cada atleta(ou equipe) terá um resultado na competição, incluindo um escore e uma indicação de colocação na campetição e na categoria. O vencedor da competição final será o vencedor da categoria. Cada local terá um endereço, capacidade de público e lista de modalidades esportivas. As pessoas terão cpf, nome, idade e serão do tipo funcionário ou atleta. Dos atletas deve-se registrar as categorias inscritas. Os funcionários podem ser responsáveis por locais. Cada local deve ter um responsável. O árbitro é um tipo especial de funcionário para o qual deve-se registrar as modalidades. Cada esquipe terá um nome e uma lista de atletas participantes. Cada empresa patrocinadora terá um cnpj, nome, endereço e tipo de patrocínio (atleta, equipe e/ou evento). Nos dois primeiros casos deve-se registrar quem são os patrocinados, no último caso deve-se registrar o valor do patrocínio. Página 28
Compartilhar