Banco de Dados - Senado Introdução Ilka Kawashita [email protected] Material preparado :Prof. Marcio Vitorino Ementa do Curso Banco de Dados n Sistemas de Apoio à Decisão (SAD) n ORACLE n Prof.: Ilka Kawashita [email protected] BANCO DE DADOS (BD) Modelo Entidade e Relacionamento. n Normalização de dados. n Conceitos de transação, integridade, concorrência e bloqueio de transações. n Projeto lógico para ambiente relacional. n Banco de dados distribuídos. n Prof.: Ilka Kawashita [email protected] SISTEMAS DE APOIO À DECISÃO (SAD) n n n n n n Princípios e técnicas de modelagem dimensional (Star Schema, Snow flake) Arquitetura OLAP ETL Data Mining Data Warehouse Business Intelligence: Conceitos Princípios e Processos. Prof.: Ilka Kawashita [email protected] ORACLE Procedures; n Packages; n Functions; n Triggers; n Views; n Materialized views; n Jobs e Sequences; n Linguagens SQL e PL/SQL n Prof.: Ilka Kawashita [email protected] Dados não Compartilhados Departamento de Compras Arquivos Compras n Departamento de Vendas Arquivos Vendas Departamento de Produção Arquivos Produção Problema: redundância de dados: q q controlada; não controlada. Prof.: Ilka Kawashita [email protected] Dados não Compartilhados n Evitar redundância não controlada: q q q compartilhamento de dados; cada informação é armazenada uma única vez; usar o conceito de banco de dados. Departamento de Compras Departamento de Vendas Banco de Dados Prof.: Ilka Kawashita [email protected] Departamento de Produção Banco de Dados n Banco de Dados: q n Conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários. Sistema de Gerência de Banco de Dados (SGBD): q Software que incorpora as funçoes de definição, recuperação e alteração de dados em um banco de dados. Prof.: Ilka Kawashita [email protected] Evolução Programa com Programa com dados armazenados Programa com dados armazenados dados armazenados Programa com Programa com gerência de arquivos Programa com gerência de arquivos gerência de arquivos dados dados Prof.: Ilka Kawashita [email protected] SGBD Programa de Programa de aplicação de BDde Programa aplicação de BD aplicação de BD Banco de Dados n n n n Modelos de Dados: descrição formal da estrutura de um banco de dados. Modelo Conceitual: modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. Modelo lógico: modelo de dados que representa a estrutura de dados de um banco de dados conforme vista pelo usuário do SGBD. Modelo Físico: é uma representação gráfica do detalhamento físico das estruturas dos dados que o banco de dados irá armazenar. Este modelo é dependente do SGBD em que será implementado. Prof.: Ilka Kawashita [email protected] Modelo de Dados n n n n n Modelo Hierárquico Modelo em Rede Modelo Relacional Modelo Relacional-Objeto Modelo Orientado a Objeto Prof.: Ilka Kawashita [email protected] Evolução dos Bancos de Dados Sistemas de arquivos BD hierárquico BD em rede BD relacional Linguagens OO Hipermídia Modelos semânticos Inteligência artificial BD OO BD “inteligente” Prof.: Ilka Kawashita [email protected] Objetos complexos Information retrieval (Khoshafian 1995) Modelo Conceitual (E-R) editora endereço autor N código Prof.: Ilka Kawashita [email protected] N COMPRA LIVROS nome telefone número CLIENTES data cadastro nome Modelo Lógico Prof.: Ilka Kawashita [email protected] Modelo Físico LIVROS COMPRA código: char(3) número: código: cadastro: nome: char(35) autor: char(70) editora: text código data: char(3) char(3) char(3) datetime cadastro CLIENTES cadastro: Prof.: Ilka Kawashita [email protected] char(3) nome: char(35) Telefone: endereço: char(14) text Níveis de Abstração Dependência nível de Modelagem X SGBD Modelo Modelo do SGBD SGBD Específico Conceitual Não Não Lógico Sim Não/Sim Físico Sim Sim Prof.: Ilka Kawashita [email protected] Banco de Dados - Senado Modelo Entidade Relacionamento (MER) Ilka Kawashita [email protected] Material preparado :Prof. Marcio Vitorino Abordagem Entidade Relacionamento n n n n Técnica para construir modelos conceituais de base de dados. Técnica de modelagem de dados mais difundida e utilizada. Criada em 1976 por Peter Chen. O Modelo E-R é representado graficamente pelo Diagrama Entidade Relacionamento (DER). Prof.: Ilka Kawashita [email protected] Conceitos Centrais n n n n n Entidade: conjunto de objetos da realidade modelada, sobre os quais deseja-se manter informações na base de dados. Relacionamento: conjunto de associações entre entidades, sobre as quais deseja-se manter informações na base de dados. Atributo: dados ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento. Generalização/Especialização: permite atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. Entidade Associativa: permite representar relacionamentos N:M Prof.: Ilka Kawashita [email protected] Entidade n n n Representada através de um retângulo. Retângulo contém o nome da entidade. Para referir um objeto particular fala-se em instância ou ocorrência da entidade. Pessoa Prof.: Ilka Kawashita [email protected] Departamento Relacionamento n Este modelo nos diz que o BD mantém informações sobre: q q q um conjunto de empregados; um conjunto de departamentos; e um conjunto de associações que ligam um departamento a um empregado. Pessoa Prof.: Ilka Kawashita [email protected] Lotação Departamento Relacionamento Pessoa ENTIDADE EMPREGADO RELACIONAMENTO LOTAÇÃO ENTIDADE DEPARTAMENTO Prof.: Ilka Kawashita [email protected] Departamento Lotação e3 e1 e2 e1,d1 d1 e7 e4 e6 e2,d1 d2 e4,d2 e8 e5 e5,d3 d3 Auto-relacionamento n n Normalmente um relacionamento associa entidades diferentes. Há um caso especial no qual há um relacionamento entre a mesma entidade. Nesta situação surge o conceito de PAPEL que identificará o relacionamento. EMPREGADO subordinado gerente GERENCIA Prof.: Ilka Kawashita [email protected] Papel em Relacionamentos n n Função que uma ocorrência de uma entidade cumpre em uma ocorrência de um relacionamento. Relacionamento de gerência: q q n Uma ocorrência de pessoa exerce o papel de subordinado. Uma ocorrência de pessoa exerce o papel de gerente. Relacionamento entre entidades diferentes não é necessário indicar os papéis das entidades. Prof.: Ilka Kawashita [email protected] Cardinalidade de Relacionamentos CARDINALIDADE MÁXIMA A cardinalidade máxima de uma entidade em relacionamento é o número máximo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através do relacionamento. EMPREGADO n Prof.: Ilka Kawashita [email protected] DEPARTAMENTO LOTAÇÃO 1 Cardinalidade de Relacionamentos Para fins práticos, apenas duas cardinalidades máximas são de nosso interesse, as: - de valor 1; e a - de valor n. EMPREGADO LOTAÇÃO n Prof.: Ilka Kawashita [email protected] DEPARTAMENTO 1 Relacionamentos Binários A cardinalidade máxima é usada para classificar os relacionamentos binários, aqueles nos quais os relacionamentos se dão entre duas entidades. TIPOS DE RELACIONAMENTOS BINÁRIOS - 1:1 ( um-para-um ); - 1:N ( um-para-muitos ); e - N:M ( muitos-para-muitos). Prof.: Ilka Kawashita [email protected] Relacionamentos Binários 1:1 EMPREGADO ALOCAÇÃO 1 Prof.: Ilka Kawashita [email protected] BANCADA 1 Relacionamentos Binários 1:N EMPREGADO DEPENDENTE TEM 1 N EMPREGADO chefia chefiado N 1 CHEFE Prof.: Ilka Kawashita [email protected] Relacionamentos Binários N:M PACIENTE TEM MÉDICO N M PRODUTO composto componente M N COMPOSIÇÃO Prof.: Ilka Kawashita [email protected] Relacionamentos Ternários A abordagem ER permite que sejam definidos relacionamentos de graus maiores que dois, muito embora não sejam comuns. ANÁLISE A cardinalidade refere-se a pares de entidades e relacionadas com a terceira. Prof.: Ilka Kawashita [email protected] Relacionamentos Ternários CIDADE DISTRIBUIDOR N 1 TEM M PRODUTO Prof.: Ilka Kawashita [email protected] Relacionamentos Ternários CIDADE DISTRIBUIDOR N 1 TEM M PRODUTO Prof.: Ilka Kawashita [email protected] Relacionamentos Ternários TABELA PARA ANÁLISE DE RELACIONAMENTOS TERNÁRIOS DISTRIBUIDOR PRODUTO CIDADE TRAMONTINA FACA RIO DE JANEIRO TRAMONTINA COLHER RIO DE JANEIRO EBERLE FACA BRASÍLIA EBERLE COLHER BRASÍLIA INOX FACA SÃO PAULO INOX COLHER SÃO PAULO TRAMONTINA FACA BELO HORIZONTE TRAMONTINA COLHER BELO HORIZONTE EBERLE FACA PORTO ALEGRE EBERLE COLHER PORTO ALEGRE Prof.: Ilka Kawashita [email protected] Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO Prof.: Ilka Kawashita [email protected] Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO Prof.: Ilka Kawashita [email protected] Cardinalidade de Relacionamentos CARDINALIDADE MÍNIMA A cardinalidade mínima de uma entidade em relacionamento é o número mínimo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através do relacionamento. EMPREGADO (0,1) Prof.: Ilka Kawashita [email protected] BANCADA ALOCAÇÃO (1,1) Cardinalidade de Relacionamentos Para fins práticos, apenas duas cardinalidades mínimas são de nosso interesse, a de valor 0 e a de valor 1. A cardinalidade mínima 1 recebe a denominação de associação obrigatória, uma vez que indica que o relacionamento DEVE obrigatoriamente associar uma ocorrência de entidade à cada ocorrência da outra entidade em questão. A cardinalidade mínima 0 recebe a denominação de associação opcional, uma vez que indica que o relaciona-mento PODE ou não associar uma ocorrência de entidade à cada ocorrência da outra entidade em questão. EMPREGADO (0,1) Prof.: Ilka Kawashita [email protected] BANCADA ALOCAÇÃO (1,1) Cardinalidade de Relacionamentos DIAGRAMA DE OCORRÊNCIAS ENTIDADE EMPREGADO RELACIONAMENTO ALOCAÇÃO ENTIDADE BANCADA n n n e1 e2 e1,b1 b1 e3 e4 e2,b2 b2 b3 e3,b6 b4 e4,b4 b5 b6 Os empregados e1, e2, e3 e e4 estão ligados às bancadas b1, b2, b4 e b6, respectivamente; Cada empregado está obrigatoriamente ligado à uma bancada; Uma bancada pode existir sem que esteja ligado a ela nenhum empregado. Prof.: Ilka Kawashita [email protected] VERBO CARDINALIDADE MÍNIMA 0 pode deve 1 RELACIONAMENTO MÁXIMA GRAU TIPO 1 um e inclusive nenhum N muitos e inclusive nenhum 1 um e somente um opcional obrigatório N muitos ou um Leitura de Relacionamentos Cada FUNCIONÁRIO ( 1,1 ) RESPONSÁVEL ( 0,N ) DEPENDENTE Prof.: Ilka Kawashita [email protected] Entidade Sujeito funcionário Verbo de Opcionalidade pode Relacionamento ser responsável por Grau de Relacionamento Entidade Objeto muitos e inclusive nenhum dependente Exemplo n Deseja-se manter no BD informações sobre as entidades: q q q q n Exemplo Alunos; Cursos; Disciplinas; e Departamentos. As cardinalidades descrevem que: q q q q cada Disciplina deve possuir um e somente um Departamento responsável, e cada Departamento pode ser responsável por muitas e inclusive nenhuma Disciplina; cada Disciplina pode possuir muitas e inclusive nenhuma Disciplina pré-requisito e cada Disciplina pode ser pré-requisito de muitas e inclusive de nenhuma Disciplina; cada Disciplina pode aparecer em muitos e inclusive nenhum Curso, e cada Curso pode possuir muitas e inclusive nenhuma Disciplina em seu currículo; cada Aluno deve estar inscrito em um e somente um Curso e cada Curso pode ter nele inscrito muitos e inclusive nenhum Aluno. Prof.: Ilka Kawashita [email protected] Exemplo PRÉ-REQUISITO liberada liberadora (0,N) DEPARTMENTO RESPONSÁVEL (1,1) (0,N) DISCIPLINA (0,N) (0,N) DISC/CURSO (0,N) ALUNO Prof.: Ilka Kawashita [email protected] (0,N) INSCRIÇÃO (1,1) CURSO Atributo Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento. REPRESENTAÇÃO EMPREGADO código ATUAÇÃO tipo função data nome ENTIDADE Prof.: Ilka Kawashita [email protected] RELACIONAMENTO Cardinalidade de Atributos Um atributo pode possuir uma cardinalidade, de maneira análoga à uma entidade num relacionamento. Esta cardinalidade define quantos valores deste atributo podem estar associados com uma ocorrência da entidade ou relacionamento ao qual ele pertence. CARDINALIDADES DE INTERESSE - Cardinalidade (1,1): obrigatória (não precisa representar a cardinalidade no diagrama); - Cardinalidade (0,1): opcional; - Cardinalidade (0,N): opcional e multivalorada; EMPREGADO Prof.: Ilka Kawashita [email protected] código nome telefone(0,N) Identificando Entidades Um identificador é um conjunto de um ou mais atributos, ou relacionamentos, cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. IDENTIFICADOR SIMPLES Um único atributo é suficiente para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. EMPREGADO código Prof.: Ilka Kawashita [email protected] nome telefone Somente o atributo código identifica exclusivamente um empregado. Identificando Entidades IDENTIFICADOR COMPOSTO Dois ou mais atributos podem ser necessários para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade, neste caso o identificador é dito composto. PRATELEIRA Os atributos número do corredor e número da prateleira identificam exclusivamente uma dada prateleira. capacidade número da prateleira número do corredor Prof.: Ilka Kawashita [email protected] Relacionamento Identificador Há casos em que o identificador de uma entidade é composto não somente por seu ou seus atributos, mas também através de relacionamentos em que ela participa. código nome seqüência EMPREGADO POSSUI (1,1) nome DEPENDENTE (0,n) A entidade Dependentes é identificada por seu atributo sequência e pelo relacionamento com a entidade Empregado. À semelhança do atributo identificador - que tem a sua bolinha cheia - o relacionamento identificador recebe uma linha espessa no diagrama. Prof.: Ilka Kawashita [email protected] Relacionamento Identificador GRUPO código GR/EMP EMPRESA número da empresa EMP/FIL Prof.: Ilka Kawashita [email protected] FILIAL número da filial Propriedades dos Identificadores O identificador deverá ser MÍNIMO, isso significa que se o identificador deve ser composto de tal forma que retirando-se um de seus atributos ou relacionamentos que o compõem, ele deixa de ser identificador. EMPREGADO telefone nome código Prof.: Ilka Kawashita [email protected] Um identificador composto poderia ser, por exemplo, os atributos código e nome. Mas não forma um identificador mínimo, pois somente o código já é suficiente para tal. Propriedades dos Identificadores Cada entidade deverá ter um ÚNICO identificador. EMPREGADO nome código Prof.: Ilka Kawashita [email protected] CPF telefone A entidade Empregado tem dois atributos que poderiam ser o identificador da entidade: código o u C P F. C a b e r á e n t ã o a o modelador decidir qual deles será utilizado como identificador. Identificando Relacionamentos Um relacionamento é identificado pelas entidades dele participantes, bem como pelos seus próprios atributos identificadores porventura existentes. MÉDICO PACIENTE CONSULTA n n data/hora O atributo identificador de relacionamento data/hora distingue uma Consulta entre um Médico e seu Paciente entre as demais consultas deste Médico com os seus demais Pacientes. Prof.: Ilka Kawashita [email protected] Generalização/Especialização Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências especializadas de uma entidade genérica. código FILIAL CLIENTE POSSUI (1,1) A entidade especializada herda as propriedades da entidade genérica. Prof.: Ilka Kawashita [email protected] nome (0,n) CGC tipo CPF PESSOA JURÍDICA PESSOA FÍSICA sexo Generalização/Especialização Prof.: Ilka Kawashita [email protected] Generalização/Especialização Prof.: Ilka Kawashita [email protected] Generalização/Especialização Prof.: Ilka Kawashita [email protected] Disjunção TOTAL quando para cada ocorrência da entidade genérica existe sempre uma ocorrência numa das entidades especializadas. código FILIAL CLIENTE POSSUI (1,1) O diagrama descreve que os clientes desta filial ou são pessoas jurídicas ou pessoas físicas. Prof.: Ilka Kawashita [email protected] nome (0,n) t CGC tipo CPF PESSOA JURÍDICA PESSOA FÍSICA sexo Disjunção Disjunção PARCIAL quando nem toda ocorrência da entidade genérica possui uma ocorrência numa das entidades especializadas. código FILIAL O diagrama descreve que os clientes desta filial p o d e m s e r pessoas jurídicas, pessoas físicas ou outras. Prof.: Ilka Kawashita [email protected] tipo CLIENTE POSSUI (1,1) nome (0,n) p CGC tipo CPF PESSOA JURÍDICA PESSOA FÍSICA sexo Generalização/Especialização - Admite-se até que uma mesma entidade seja a especialização de diversas entidades genéricas ( herança múltipla). VEÍCULO VEÍCULO TERRESTRE AUTOMÓVEL Prof.: Ilka Kawashita [email protected] VEÍCULO AQUÁTICO VEÍCULO ANFÍBIO BARCO Generalização/Especialização - A generalização/especialização exclusiva descreve uma ocorrência da entidade genérica no máximo uma vez na generalização/especialização. - A generalização/especialização não exclusiva descreve mais de uma ocorrência da entidade genérica na generalização/ especialização. Quando ela ocorrer deverá ser tratada como relacionamentos entre as entidades envolvidas. Prof.: Ilka Kawashita [email protected] Entidade Associativa Por definição um relacionamento é uma associação entre entidades. Na modelagem ER não é prevista a possibilidade de associar uma entidade a um relacionamento, ou de associar dois relacionamentos entre si. Em certas oportunidades, durante a modelagem surgem situações nas quais é desejável permitir uma associação entre uma entidade e um relacionamento. MÉDICO PACIENTE CONSULTA n n Deseja-se modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos. Prof.: Ilka Kawashita [email protected] Entidade Associativa Modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos. 1ª SOLUÇÃO Relacionar Medicamento a Médico. Neste caso só se tem a informação de que Médico prescreveu qual Medicamento,não se tem a informação de qual Paciente os teve prescritos. 2ª SOLUÇÃO Relacionar Medicamento a Paciente. Neste caso só se tem a informação de qual Paciente teve prescrito tal Medicamento, não se tem a informação de qual Médico os prescreveu. 3ª SOLUÇÃO Sendo possível relacionar a entidade Medicamento com o relacionamento entre Médico e Paciente o problema estaria resolvido. Mas estaríamos relacionando uma entidade a um relacionamento, algo não previsto no MER. Prof.: Ilka Kawashita [email protected] Entidade Associativa MÉDICO n CONSULTA n A solução é então transformar o relacionamento entre Médico e Paciente numa Entidade Associativa e relacioná-la com a entidade Medicamento. Prof.: Ilka Kawashita [email protected] PRESCRIÇÃO n MEDICAMENTO n PACIENTE Entidade Associativa Outra solução seria transformar o relacionamento Consulta em entidade e relacioná-la às entidades Médico, Paciente e Medicamento. MÉDICO PACIENTE (1,1) (1,1) PRESCRIÇÃO PRESCRIÇÃO n n CONSULTA n PRESCRIÇÃO n Prof.: Ilka Kawashita [email protected] MEDICAMENTO Símbolos - DER Prof.: Ilka Kawashita [email protected]