Bancos de Dados Relacionais Uma introdução prática EPUSP-PMR Prof. Dr. Marcos Tsuzuki 1 PROGRAMA – 1.Introdução • 1.1 Evolução do armazenamento de dados • 1.2 Arquitetura de um DBMS – 2.Modelo Relacional • 2.1 Modelo E-R • 2.2 Modelo Relacional • 2.3 Operações EPUSP-PMR Prof. Dr. Marcos Tsuzuki 2 PROGRAMA – 3.SQL Básico • • • • EPUSP-PMR 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação Prof. Dr. Marcos Tsuzuki 3 PROGRAMA – 4.SQL Avançado • • • • • EPUSP-PMR 4.1 Indexação 4.2 Joins 4.3 Views 4.4 Triggers 4.5 Constraints Prof. Dr. Marcos Tsuzuki 4 PROGRAMA – 5, 6, 7, 8. Apresentação do Projeto • Cada aluno fará um projeto de banco de dados especificando o caso de estudo, a aplicação, a modelagem do banco de dados, o fluxo de informação e como utilizá-lo como Data Ware House. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 5 1.Introdução 1.1 Evolução do armazenamento de dados 1.2 Arquitetura de um DBMS EPUSP-PMR Prof. Dr. Marcos Tsuzuki 6 1.1 Introdução: Evolução do armazenamento de dados Evolução dos sistemas de armazenamento de massa •Memória •Sistema de arquivos •Acesso seqüencial •Acesso direto •Acesso indexado •Bancos de dados EPUSP-PMR Prof. Dr. Marcos Tsuzuki 7 1.1 Introdução: Evolução do armazenamento de dados Características de um DBMS • Usuários devem poder definir seu schema (estrutura lógica dos dados), usando uma linguagem apropriada (DDL, data definition language) • Usuários devem poder realizar perguntas e acessos (“query”) sem conhecimento da estrutura de armazenamento dos dados, usando uma linguagem apropriada (DML, data manipulation language ou query-language) • Usuários devem poder acessar grandes volumes de dados de forma eficiente • Usuários devem poder acessar dados de forma independente uns dos outros, sob controle de acesso EPUSP-PMR Prof. Dr. Marcos Tsuzuki 8 1.1 Introdução: Evolução do armazenamento de dados Evolução histórica dos DBMS •Hierárquico (modelo em árvore, ‘60) Stone Schwarzenegger Basic Instinct Total Recall EPUSP-PMR Prof. Dr. Marcos Tsuzuki 9 1.1 Introdução: Evolução do armazenamento de dados Evolução histórica dos DBMS •Rede (CODASYL, fim ‘60) Stone Schwarzenegger Basic Instinct Total Recall EPUSP-PMR Prof. Dr. Marcos Tsuzuki 10 1.1 Introdução: Evolução do armazenamento de dados Evolução histórica dos DBMS •Relacional (Codd, ‘70) Stone Basic Instinct Schwarzenegger Total Recall Stone Total Recall EPUSP-PMR Prof. Dr. Marcos Tsuzuki 11 1.2 Introdução: Arquitetura de um DBMS Arquitetura de um DBMS Schema Queries Query Processor Transaction Mng Storage Manager Data Metadata EPUSP-PMR Prof. Dr. Marcos Tsuzuki 12 1.2 Introdução: Arquitetura de um DBMS Storage Manager Composto por • File Manager, responsável pela manipulação do disco • Buffer Manager, responsável pelos dados em memória (cache, paginação) EPUSP-PMR Prof. Dr. Marcos Tsuzuki 13 1.2 Introdução: Arquitetura de um DBMS Query Manager Composto por • Query translator (de SQL para acessos a dados armazenados) • Query optimizer EPUSP-PMR Prof. Dr. Marcos Tsuzuki 14 1.2 Introdução: Arquitetura de um DBMS Transaction Manager • Garante as propriedades ACID • Atomicidade (Atomicity): uma transação é indivisível; ou ela acontece ou não • Consistência (Consistency):Antes e após uma transação, o estado do banco de dados é consistente • Isolação (Isolation):Se duas ou mais transações acontecem simultaneamente, seus efeitos devem ser isolados • Durabilidade (Durability): Se uma transação se completa, seus efeitos não devem cessar mesmo que o sistema falhe imediatamente após EPUSP-PMR Prof. Dr. Marcos Tsuzuki 15 1.2 Introdução: Arquitetura de um DBMS Transaction Manager • Lock • Define o nível de isolação • Página • Linha • Logging • Armazenamento não volátil • Commit • Durabilidade da transação EPUSP-PMR Prof. Dr. Marcos Tsuzuki 16 1.2 Introdução: Arquitetura de um DBMS Transaction Manager • Índice • Hash • Balanced tree • Binary tree EPUSP-PMR Prof. Dr. Marcos Tsuzuki 17 2.Modelo Relacional 2.1 Modelo E-R 2.2 Modelo Relacional 2.3 Operações EPUSP-PMR Prof. Dr. Marcos Tsuzuki 18 2.1 Modelo E-R Ciclo de Projeto Requisitos Projeto Conceitual Schema conceitual Projeto Lógico E-R Schema lógico Projeto Físico Schema físico EPUSP-PMR Prof. Dr. Marcos Tsuzuki SQL 19 2.1 Modelo E-R Conceitos básicos • Entidade – Representam classes do mundo real • Relacionamento – Representam agregações entre duas ou mais entidades – Os relacionamentos podem ser • Binários: entre duas entidades • N-ários: entre N entidades • Recursivos: de uma entidade para ela própria EPUSP-PMR Prof. Dr. Marcos Tsuzuki 20 2.1 Modelo E-R Cardinalidade dos Relacionamentos • 1 para 1 – – – – min_card(Ordem, remessa) = 0 max_card(Ordem, remessa) = 1 min_card(Fatura, remessa) = 1 max_card(Fatura, remessa) = 1 Ordem EPUSP-PMR (0,1) remessa (1,1) Prof. Dr. Marcos Tsuzuki Fatura 21 2.1 Modelo E-R Cardinalidade dos Relacionamentos • 1 para n – – – – min_card(Pessoa, mora_em) = 0 max_card(Pessoa, mora_em) = 1 min_card(Cidade, mora_em) = 0 max_card(Cidade, mora_em) = n Pessoa EPUSP-PMR (1,1) mora_em (0,n) Prof. Dr. Marcos Tsuzuki Cidade 22 2.1 Modelo E-R Cardinalidade dos Relacionamentos • n para n – – – – min_card(Produto, usa) = 1 max_card(Produto, usa) = n min_card(Materiais, usa) = 0 max_card(Materiais, usa) = n Produto EPUSP-PMR (1,n) usa (0,n) Prof. Dr. Marcos Tsuzuki Materiais 23 2.1 Modelo E-R Cardinalidade dos Relacionamentos • Recursivo (1-n) – – – – min_card(Empregado, chefia) = 0 max_card(Empregado, chefia) = n min_card(Empregado, responde_a) = 0 max_card(Empregado, responde_a) = 1 Empregado (0,n) gerencia chefia (0,1) responde_a EPUSP-PMR Prof. Dr. Marcos Tsuzuki 24 2.1 Modelo E-R Cardinalidade dos Relacionamentos • N-ário Matéria (1,3) aula (0,40) Sala (0,n) Dia EPUSP-PMR Prof. Dr. Marcos Tsuzuki 25 2.1 Modelo E-R Cardinalidade dos Relacionamentos • N-ário Aluno (1,n) aula (0,n) Disciplina (0,1) Professor EPUSP-PMR Prof. Dr. Marcos Tsuzuki 26 2.1 Modelo E-R Cardinalidade dos Relacionamentos • N-ário – Separar a entidade Aluno e analisar o par Professor, Disciplina. Para cada par Professor/Disciplina podemos ter de 1 até N Alunos relacionados; – Separar a entidade Professor e analisar o par Aluno, Disciplina. Para cada par Aluno/Disciplina podemos ter 1 e somente 1 Professor relacionado; – Separar a entidade Disciplina e analisar Professor, Aluno. Para cada par Professor/Aluno podemos ter de 1 até N Disciplinas relacionadas. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 27 2.1 Modelo E-R Cardinalidade dos Relacionamentos • N-ário – Quando um aluno está matriculado em uma disciplina, este tem sempre um professor; – Um aluno pode estar matriculado em várias disciplinas; – Uma disciplina tem vários alunos, e somente um professor; – Um professor leciona uma disciplina para vários alunos. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 28 2.1 Modelo E-R Decidir a Cardinalidade • Modelagem de Dados é uma Arte – Nota Fiscal, Item de Nota Fiscal e Produto Nota Fiscal (1,n) possui (1,1) Item de NF (1,1) associa (1,n) Produto EPUSP-PMR Prof. Dr. Marcos Tsuzuki 29 2.1 Modelo E-R Decidir a Cardinalidade • Modelagem de Dados é uma Arte – Todas as notas fiscais têm, no mínimo, um item de nota fiscal relacionado; – Todo item de nota fiscal está relacionado a uma nota fiscal; – Todo item de nota fiscal está relacionado a um produto. • A entidade item de NF está relacionando NF e produto. Ela também é conhecida como Entidade Associativa. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 30 2.1 Modelo E-R Atributos • Atributos são propriedades elementares de entidades e relacionamentos Nome Pessoa RG Profissão mora_em Data_da_mudança EPUSP-PMR Prof. Dr. Marcos Tsuzuki 31 2.1 Modelo E-R Identificadores (chaves) • Identificadores (chaves) são conjuntos de atributos que podem determinar unicamente uma entidade Nome Pessoa EPUSP-PMR RG Profissão Prof. Dr. Marcos Tsuzuki 32 2.1 Modelo E-R Identificadores (chaves) • Simples ou compostos • Internos ou externos Empregado (1,1) trabalha_no (1,n) Departamento ID Nota: Empregado é uma entidade fraca EPUSP-PMR Prof. Dr. Marcos Tsuzuki 33 2.1 Modelo E-R Agregação • Um assassino faz vítimas. Quando ele assassina, utiliza armas. Assassino Assassina Vítima Usa Arma EPUSP-PMR Prof. Dr. Marcos Tsuzuki 34 2.1 Modelo E-R Agregação • Existem na realidade dois relacionamentos para retratar um fato por completo. • O que desejamos é relacionar uma ocorrência de Arma, com uma ocorrência do fato, do relacionamento Assassina. Assassino Faz Crime Tem Vítima Usa Arma EPUSP-PMR Prof. Dr. Marcos Tsuzuki 35 2.1 Modelo E-R Agregação • Um médico atende a muitos pacientes, que o consultam, e um paciente pode realizar consultas com muitos médicos. Sempre que um paciente consulta um médico, este fornece uma receita, que pode ter um, ou vários remédios. Consulta Médico Atende Consulta Paciente Receita Remédio EPUSP-PMR Prof. Dr. Marcos Tsuzuki 36 2.1 Modelo E-R Problemas 2.1 a.Prepare um diagrama E-R para um sistema de controle de pedidos b.Mostre dois identificadores para a entidade DETALHE PRODUTO CABEÇALHO nro_linha EPUSP-PMR DETALHE Prof. Dr. Marcos Tsuzuki 37 2.2.Modelo Relacional Conceitos básicos • Relação: tabela bi-dimensional • Atributos: nomes das colunas da tabela • Schema: nome da relação e atributos – Filme(Título, Ano, Duração, Classificação) • Tupla: linhas de uma relação – (“Star Wars”, 1977, 124, Ficção) • Domínio: valores que um atributo pode assumir EPUSP-PMR Prof. Dr. Marcos Tsuzuki 38 2.2.Modelo Relacional Formas normais • O conceito de normalização foi introduzido por E.F.Codd em 1970 (primeira forma normal). Esta técnica é um processo matemático que tem seus fundamentos na teoria dos conjuntos. • Através deste processo pode-se, gradativamente, substituir um conjunto de entidades e relacionamentos por um outro, o qual se apresenta purificado em relação às anomalias de atualização (inclusão, alteração e exclusão) as quais podem causar certos problemas, tais como: grupos repetitivos (atributos multivalorados) de dados, dependências parciais em relação a uma chave concatenada, redundância desnecessária de dados, dificuldade na representação de fatos da realidade observada e dependências transitivas entre atributos. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 39 2.2.Modelo Relacional Fomulário de Pedido Num. Ped. Cliente 3445 TCA 3445 TCA 3445 TCA 3445 TCA 3445 TCA 3445 TCA 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes 2610 Lopes EPUSP-PMR Endereço R. Meira R. Meira R. Meira R. Meira R. Meira R. Meira R. 127 R. 127 R. 127 R. 127 R. 127 R. 127 R. 127 R. 127 R. 127 R. 127 CGC 1111111 1111111 1111111 1111111 1111111 1111111 23232323 23232323 23232323 23232323 23232323 23232323 23232323 23232323 23232323 23232323 IE 111111 111111 111111 111111 111111 111111 34343434 34343434 34343434 34343434 34343434 34343434 34343434 34343434 34343434 34343434 Cod. Prod. Unid. 45 L 130 M 335 Kg 78 Kg 90 L 39 Kg 45 L 78 Kg 21 Kg 98 L 90 L 43 M 25 F 65 L 51 M 74 M Quant. Prof. Dr. Marcos Tsuzuki 20 2 30 50 40 3 50 47 20 15 15 10 10 5 20 30 Descrição Val. álcool tecido farinha cimento cola chumbo álcool cimento pregos tinta azul cola arame algodão querosene fio elétrico linha 10 Unit. Tot. Prod. Tot. do Ped. 5,00 100,00 1799,00 20,00 40,00 1799,00 1,00 30,00 1799,00 30,00 1500,00 1799,00 3,00 120,00 1799,00 3,00 9,00 1799,00 5,00 250,00 2650,00 30,00 1410,00 2650,00 5,00 100,00 2650,00 25,00 375,00 2650,00 3,00 45,00 2650,00 3,00 30,00 2650,00 2,00 20,00 2650,00 8,00 40,00 2650,00 13,00 260,00 2650,00 4,00 120,00 2650,00 40 2.2.Modelo Relacional Fomulário de Pedido (Atributos) • • • • • • • • • • Número do pedido Prazo de entrega Cliente Endereço Cidade UF CGC Inscrição Estadual Código do produto Unidade do produto EPUSP-PMR • • • • • • • Quantidade do produto Descrição do produto Valor unitário do produto Valor total do produto Valor total do pedido Código do vendedor Nome do vendedor Prof. Dr. Marcos Tsuzuki 41 2.2.Modelo Relacional Formas normais • Caso esta entidade fosse implementada como uma tabela em um banco de dados, as seguintes anomalias iriam aparecer: – Anomalia de inclusão: ao ser incluído um novo cliente, o mesmo tem que estar relacionado a uma venda; – Anomalia de exclusão: ao ser excluído um cliente, os dados referentes as suas compras serão perdidos; – Anomalia de alteração: caso algum fabricante de produto altere a faixa de preço de uma determinada classe de produtos, será preciso percorrer toda a entidade para se realizar múltiplas alterações. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 42 2.2.Modelo Relacional Primeira Forma Normal (1FN) • • • • Em uma determinada realidade, às vezes encontramos algumas informações que se repetem (atributos multivalorados), retratando ocorrências de um mesmo fato dentro de uma única linha e vinculadas a sua chave primária; Ao observarmos a entidade PEDIDO, apresentada anteriormente, visualizamos que um certo grupo de atributos (produtos solicitados) se repete (número de ocorrências não definidas) ao longo do processo de entrada de dados na entidade; A 1FN diz que: cada ocorrência da chave primária deve corresponder a uma e somente uma informação de cada atributo, ou seja, a entidade não deve conter grupos repetitivos (multivalorados); Para se obter entidades na 1FN, é necessário decompor cada entidade não normalizada em tantas entidades quanto for o número de conjuntos de atributos repetitivos. Nas novas entidades criadas, a chave primária é a concatenação da chave primária original mais o(s) atributo(s) do grupo repetitivo visualizado(s) como chave primária deste grupo. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 43 2.2.Modelo Relacional Primeira Forma Normal (1FN) • • Ao aplicarmos a 1FN sobre a entidade PEDIDO, obtemos mais uma entidade chamada ITEM-DE-PEDIDO, que herdará os atributos repetitivos e destacados da entidade PEDIDO; Um PEDIDO possui no mínimo 1 e no máximo N elementos em ITEM-DEPEDIDO e um ITEM-DE-PEDIDO pertence a 1 e somente 1 PEDIDO. Pedido EPUSP-PMR (1,n) Possui (1,1) Prof. Dr. Marcos Tsuzuki Item de Pedido 44 2.2.Modelo Relacional Primeira Forma Normal (1FN) • PEDIDO • • • • • • • • • • • • Número do pedido Prazo de entrega Cliente Endereço Cidade UF CGC Inscrição Estadual Valor total do pedido Valor total do pedido Código do vendedor Nome do vendedor EPUSP-PMR • ITEM DE PEDIDO • • • • • • • Prof. Dr. Marcos Tsuzuki Número do pedido Código do produto Quantidade do produto Descrição do produto Valor unitário do produto Valor total do produto Unidade do produto 45 2.2.Modelo Relacional Dependência Funcional • • • • Para descrevermos as próximas formas normais, se faz necessária a introdução do conceito de dependência funcional, sobre o qual a maior parte da teoria de normalização foi baseada; Dada uma entidade qualquer, dizemos que um atributo ou conjunto de atributos A é dependente funcional de um outro atributo B contido na mesma entidade, se a cada valor B existir nas linhas da entidade em que aparece, um único valor de A. Em outras palavras, A depende funcionalmente de B; Na entidade PEDIDO, o atributo PRAZO-DE-ENTREGA depende funcionalmente de NUMERO-DO-PEDIDO; O exame das relações existentes entre os atributos de uma entidade deve ser feito a partir do conhecimento (conceitual) que tem sobre a realidade a ser modelada. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 46 2.2.Modelo Relacional Dependência Funcional Total e Parcial • • • Na ocorrência de uma chave primária concatenada, dizemos que um atributo ou conjunto de atributos depende de forma completa ou total desta chave primária concatenada, se e somente se, a cada valor da chave (e não parte dela), está associado um valor para cada atributo, ou seja, um atributo não se apresenta com dependência completa ou total quando só depende de parte da chave primária concatenada e não dela como um todo; Dependência total – na entidade ITEM-DO-PEDIDO, o atributo QUANTIDADE-DO-PRODUTO depende de forma total ou completa da chave primária concatenada (NÚMERO-DO-PEDIDO + CÓDIGO-DOPRODUTO); A dependência total ou completa só ocorre quando a chave primária for composta por vários atributos, ou seja, em uma entidade de chave primária composta de um único atributo não ocorre este tipo de dependência. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 47 2.2.Modelo Relacional Dependência Funcional Transitiva • • • Quando um atributo ou conjunto de atributos A depende de outro atributo B que não pertence à chave primária, mas é dependente funcional desta, dizemos que A é dependente transitivo de B. Dependência transitiva – na entidade PEDIDO, os atributos ENDEREÇO, CIDADE, UF, CGC e INSCRIÇÃO ESTADUAL são dependentes transitivos do atributo CLIENTE. Nesta mesma entidade, o atributo NOME-DOVENDEDOR é dependente transitivo do atributo CÓDIGO-DOVENDEDOR; Com base na teoria sobre as dependências funcionais entre atributos de uma entidade, podemos continuar com a apresentação das outras formas normais. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 48 2.2.Modelo Relacional Segunda Forma Normal (2FN) • Devemos observar se alguma entidade possui chave primária concatenada, e para aquelas que satisfizerem esta condição, analisar se existe algum atributo ou conjunto de atributos com dependência parcial em relação a algum elemento da chave primária concatenada; • Com a finalidade de tornar ainda mais estável o modelo de dados, a aplicação da 2FN sobre as entidades em observação geram novas entidades, que herdarão a chave parcial e todos os atributos que dependem desta chave parcial, ou seja, uma entidade para estar na 2FN não pode ter atributos com dependência parcial em relação à chave primária. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 49 2.2.Modelo Relacional Segunda Forma Normal (2FN) • A entidade ITEM-DO-PEDIDO apresenta uma chave primária concatenada e por observação, notamos que os atributos UNIDADE-DO-PRODUTO, DESCRIÇÃO-DO-PRODUTO e VALOR-UNITÁRIO dependem de forma parcial do atributo CÓDIGO-DO-PRODUTO, que faz parte da chave primária. Logo devemos aplicar a 2FN sobre esta entidade. Quando aplicarmos a 2FN sobre ITEM-DO-PRODUTO, será criada a entidade PRODUTO que herdará os atributos UNIDADE-DOPRODUTO, DESCRIÇÃO-DO-PRODUTO e VALORUNITÁRIO e terá como chave primária o CÓDIGO-DOPRODUTO. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 50 2.2.Modelo Relacional Segunda Forma Normal (2FN) Pedido (1,n) Possui (1,1) Item de Pedido (1,1) Participa (0,n) • Um PRODUTO participa de no mínimo 0 e no máximo N elementos de ITEM-DEPEDIDO e um ITEM-DE-PEDIDO só pode conter 1 somente 1 PRODUTO. EPUSP-PMR Prof. Dr. Marcos Tsuzuki Produto 51 2.2.Modelo Relacional Terceira Forma Normal (3FN) • • • Uma entidade está na 3FN se nenhum de seus atributos possui dependência transitiva em relação a outro atributo da entidade que não participe da chave primária, ou seja, não exista nenhum atributo intermediário entre a chave primária e o próprio atributo observado; Ao retirarmos a dependência transitiva, devemos criar uma nova entidade que contenha os atributos que dependem transitivamente de outro e a sua chave primária é o atributo que causou esta dependência; Além de não conter atributos com dependência transitiva, entidades na 3FN não devem conter atributos que sejam o resultado de algum cálculo sobre outro atributo, que de certa forma pode ser encarada como uma dependência funcional. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 52 2.2.Modelo Relacional Terceira Forma Normal (3FN) • • Na entidade PEDIDO, podemos observar que o atributo NOME-DOVENDEDOR depende transitivamente do atributo CÓDIGO-DOVENDEDOR que não pertence à chave primária. Para eliminarmos esta anomalia devemos criar a entidade VENDEDOR, com o atributo NOMEDO-VENDEDOR e tendo como chave primária o atributo CÓDIGO-DOVENDEDOR; Encontramos ainda o conjunto de atributos formados por ENDEREÇO, CIDADE, UF, CGC e INSCRIÇÃO ESTADUAL que dependem transitivamente do atributo CLIENTE. Neste caso, devemos criar a entidade CLIENTE que conterá os atributos ENDEREÇO, CIDADE, UF, CGC e INSCRIÇÃO ESTADUAL. Para chave primária desta entidade vamos criar um atributo chamado CÓDIGO-DO-CLIENTE que funcionará melhor como chave primária do que NOME-DO-CLIENTE, deixando este último como simples atributo da entidade CLIENTE. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 53 2.2.Modelo Relacional Terceira Forma Normal (3FN) (1,n) Pedido (1,1) Faz (0,n) Cliente EPUSP-PMR Possui (1,1) (1,1) Item de Pedido (1,1) Tira (0,n) Vendedor Prof. Dr. Marcos Tsuzuki Participa (0,n) Produto 54 2.2.Modelo Relacional Terceira Forma Normal (3FN) • Um PEDIDO só é feito por um e somente um CLIENTE e um CLIENTE pode fazer de 0 até N elementos de PEDIDO. Um PEDIDO só é tirado por um e somente um VENDEDOR e VENDEDOR pode tirar de 0 a N elementos de PEDIDO. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 55 2.2.Modelo Relacional Forma Normal de BOYCE/CODD (FNBC) • • As definições da 2FN e 3FN, desenvolvidas por Codd, não cobriam certos casos. Esta inadequação foi apontada por Boyce em 1974. Os casos não cobertos pelas definições de Codd somente ocorrem quando três condições aparecem juntas: – A entidade tenha várias chaves candidatas; – Estas chaves candidatas sejam concatenadas (mais de um atributo); – As chaves concatenadas compartilham pelo menos um atributo comum; Na verdade, a FNBC é uma extensão da 3FN, que não resolvia certas anomalias presentes na informação contida em uma entidade. O problema foi observado porque a 2FN e a 3FN só tratavam dos casos de dependência parcial e transitiva de atributos fora de qualquer chave, porém quando o atributo observado estiver contido em uma chave, ele não é captado pela verificação da 2FN e 3FN. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 56 2.2.Modelo Relacional Forma Normal de BOYCE/CODD (FNBC) • Considere a seguinte entidade FILHO: Nome do Filho Endereço do Filho Data Nascimento Nome da Escola Número da Sala Nome do Professor • Por hipótese, vamos assumir que um professor possa estar associado a mais de uma escola e uma sala. Sob esta suposição, tanto a chave (candidata) concatenada NOME-DA-ESCOLA + SALA-DA-ESCOLA bem como NOME-DA-ESCOLA + NOME-DO-PROFESSOR podem ser determinantes. Logo esta entidade atende às três condições relacionadas anteriormente. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 57 2.2.Modelo Relacional Forma Normal de BOYCE/CODD (FNBC) – As chaves candidatas para a entidade FILHO são: NOME-DO-FILHO + ENDEREÇO-DO-FILHO, NOME-DO-FILHO + NÚMERO-DA-SALA e NOME-DO-FILHO + NOME-DO-PROFESSOR; – Todas as três chaves apresentam mais de um atributo (concatenados); – Todas as três chaves compartilham um mesmo atributo: NOME-DO-FILHO. • A definição da FNBC é a seguinte: uma entidade está na FNBC se e somente se todos os determinantes forem chaves candidatas. Notem que esta definição é em termos de chaves candidatas e não sobre chaves primárias. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 58 2.2.Modelo Relacional Forma Normal de BOYCE/CODD (FNBC) • • Neste exemplo, NOME-DO-PROFESSOR não é completamente dependente funcional do NÚMERO-DA-SALA, nem NÚMERO-DA-SALA é completamente dependente funcional do NOME-DO-PROFESSOR. Neste caso, NOME-DO-PROFESSOR é realmente completamente dependente funcional da chave candidata concatenada NOME-FILHO + NÚMERO-DASALA ou NÚMERO-DA-SALA é completamente dependente funcional da chave candidata concatenada NOME-DO-FILHO + NOME-DOPROFESSOR; Ao se aplicar a FNBC, a entidade FILHO deve ser dividida em duas entidades, uma que contém os atributos que designam um professor em uma particular escola e número de sala. Nome da Escola Número da Sala Nome do Professor EPUSP-PMR Prof. Dr. Marcos Tsuzuki Nome do Filho Endereço do Filho Data Nascimento Nome da Escola Número da Sala 59 2.2.Modelo Relacional Quarta Forma Normal (4FN) • • • Na maioria dos casos, as entidades normalizadas até a 3FN são fáceis de entender, atualizar e de se se recuperar dados. Mas às vezes podem surgir problemas com relação a algum atributo não chave, que recebe valores múltiplos para um mesmo valor de chave. Esta nova dependência recebe o nome de dependência multivalorada que existe somente se a entidade contiver no mínimo três atributos; Uma entidade que esteja na 3FN também está na 4FN, se ela não contiver mais do que um fato multivalorado a respeito da entidade descrita. Esta dependência não é o mesmo que uma associação M:N entre atributos, geralmente descrita desta forma em algumas literaturas. Dada a entidade hipotética a seguir: Código do Fornecedor 1111 1111 1111 1111 EPUSP-PMR Código da Peça BA3 CJ10 88A BA3 Prof. Dr. Marcos Tsuzuki Código do Comprador 113 113 435 537 60 2.2.Modelo Relacional Quarta Forma Normal (4FN) • • Como podemos observar, esta entidade tenta conter dois fatos multivalorados: as diversas peças compradas e os diversos compradores. Com isto apresenta uma dependência multivalorada entre CÓDIGO-FORNECEDOR e o CÓDIGO-PEÇA e entre CÓDIGO-FORNECEDOR e o CÓDIGOCOMPRADOR. Embora esteja na 3FN, ao conter mais de um fato multivalor, torna a sua atualização muito difícil, bem como a possibilidade de ocorrer problemas relativos ao espaço físico de armazenamento, causados pela ocupação desnecessária de área de memória; Para passarmos a entidade acima para a 4FN, é necessária a realização de uma divisão da entidade original, em duas outras, ambas herdando a chave CÓDIGO-FORNECEDOR e concatenado, em cada nova entidade, com os atributos CÓDIGO-PEÇA e CÓDIGO-COMPRADOR. Código do Fornecedor Código da Peça EPUSP-PMR Código do Fornecedor Código do Comprador Prof. Dr. Marcos Tsuzuki 61 2.3.Operações no Modelo Relacional Seleção Produz uma nova relação R’ com um subconjunto das tuplas originais σtítulo,ano=“Star Wars” (Filmes) selecionaria os atributos Título e Ano da relação Filmes cujos títulos são “Star Wars”. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 62 2.3.Operações no Modelo Relacional Operações de conjunto R, S sendo relações, tem-se • R ∪ S : união • R ∩ S : intersecção • R - S : diferença aplicam-se sobre os elementos de R e S EPUSP-PMR Prof. Dr. Marcos Tsuzuki 63 2.3.Operações no Modelo Relacional Projeção Seleção de um ou mais atributos de uma relação ∏título, ano (Filmes) selecionaria os atributos Título e Ano da relação Filmes. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 64 2.3.Operações no Modelo Relacional Produto Cartesiano O produto R x S é o conjunto de pares formados tomando-se o primeiro elemento do par como sendo um elemento qualquer de R e o segundo, um elemento de S EPUSP-PMR A 1 3 B 2 4 A 1 1 1 3 3 3 R.B 2 2 2 4 4 4 S.B 2 4 9 2 4 9 B 2 4 9 C 5 7 10 C 5 7 10 5 7 10 D 6 8 11 6 8 11 Prof. Dr. Marcos Tsuzuki D 6 8 11 65 2.3.Operações no Modelo Relacional Join O join natural R ◊ S é o produto das duas relações, relacionando somente as tuplas que correspondem em um dado sentido EPUSP-PMR A 1 6 9 B 2 7 7 C 3 8 8 A 1 1 6 9 B 2 2 7 7 C 3 3 8 8 B 2 2 7 C 3 3 8 D 4 5 10 D 4 5 10 10 Prof. Dr. Marcos Tsuzuki 66 2.3.Operações no Modelo Relacional Problemas 2.3 a. Para o modelo relacional do sistema de pedidos, calcule as operações para alguma(s) das relações. EPUSP-PMR Prof. Dr. Marcos Tsuzuki 67 2.3.Operações no Modelo Relacional Produto Cartesiano O produto R x S é o conjunto de pares formados tomando-se o primeiro elemento do par como sendo um elemento qualquer de R e o segundo, um elemento de S EPUSP-PMR Prof. Dr. Marcos Tsuzuki 68 2.2.Modelo Relacional Problemas 2.2 a.Converta o modelo E-R para o relacional b.Analise o modelo relacional obtido em a. em relação às formas normais EPUSP-PMR Prof. Dr. Marcos Tsuzuki 69