Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Aulas/aula01.pdf DCC011: Bancos de Dados Fundamentos e Aplicações Mirella M. Moro mirella@dcc.ufmg.br Rodrygo L. T. Santos rodrygo@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG DCC011 - profa. Mirella Moro 2 Sumário � DCC011 � Conceitos Básicos � O que é um banco de dados � Como manipular um banco de dados � Projeto de Banco de Dados � Tópicos Importantes � Aplicações � Banco de Dados no DCC/UFMG UFMG DCC011 - profa. Mirella Moro 3 DCC011 – Intro. Banco de Dados Objetivo � Introduzir os fundamentos que permitam ao aluno adquirir o domínio básico da tecnologia de banco de dados. Ementa � Conceitos básicos de banco de dados. Modelos de dados e linguagens. Projeto de bancos de dados. Novas tecnologias e aplicações de banco de dados. UFMG DCC011 - profa. Mirella Moro 4 Programa Introdução � Conceitos básicos: banco de dados, sistema de banco de dados, sistema de gerência de banco de dados. Características da abordagem de banco de dados. Modelos de dados, esquemas e instâncias. Arquitetura de um sistema de banco de dados. Componentes de um sistema de gerência de banco de dados. Modelos de Dados e Linguagens � Modelo entidade-relacionamento (ER): conceitos básicos, restrições de integridade, notação gráfica, conceitos adicionais. Modelagem usando UML. Modelo relacional: conceitos básicos, restrições de integridade, álgebra relacional, operações de atualização. A linguagem SQL. Projeto de Bancos de Dados � Visão geral do processo de projeto de bancos de dados. Projeto lógico de bancos de dados relacionais: mapeamentos ER/relacional, definição de esquemas em SQL. Normalização. Novas Tecnologias e Aplicações de Banco de Dados � Bancos de dados orientados a objetos e objeto-relacionais. Dados semi- estruturados e XML. Aplicações de banco de dados na Web. UFMG DCC011 - profa. Mirella Moro 5 Avaliação Provas 70 pontos (20 + 20 + 30) Trabalhos Práticos 20 pontos Exercícios e Participação 10 pontos www.dcc.ufmg.br/~mirella >> ALUNOS >> IBD Distribuição dos Conceitos 2008/2-2013/1 UFMG DCC011 - profa. Mirella Moro 6 AA FF Exercícios e Participação Trabalhos Práticos Ponderado P R O V A S UFMG DCC011 - profa. Mirella Moro 7 Bibliografia Texto Básico Elmasri, R.; Navathe, S. B. Sistemas de Banco de Dados, 6a Ed. Pearson Education, 2010. Textos Complementares � Garcia-Molina, H.; Ullman, J. D.; Widom, J. Database Systems: The Complete Book, Prentice-Hall, Upper Saddle River, NJ. 2001. � Ramakrishnan, R.; Gehrke, J. Database Management Systems. McGraw-Hill, Boston, MA, 2003. � Silberchatz, A.; Korth, H. F.; Sudarshan, S. Database Systems Concepts, 5th Ed. McGraw-Hill, New York, NY, 2005. Datas importnates � 03 e 05/03 carnaval � 10/03 aula de revisão � 12/03 PROVA 1 � 14/04 aula de revisão � 16/04 PROVA 2 � 21/04 Tiradentes � 12/05 aula de revisão � 14/05 PROVA 3 (cumulativa) � 19,21,26/05 TP2 � 28/05 Reposição de prova UFMG DCC011 - profa. Mirella Moro 8 SUJEITO A MODIFICAÇÕES UFMG DCC011 - profa. Mirella Moro 9 Observações � Todas as atividades da disciplina serão anunciadas e acompanhadas através da página da disciplina em http://www.dcc.ufmg.br/~mirella/ � Serão aplicadas três provas, sem consulta. A prova final abordará toda a matéria. � Serão propostos dois trabalhos práticos � trabalho individual = uso da linguagem SQL � trabalho em grupo = projeto + implementação de uma pequena aplicação de banco de dados, no ambiente Web. A avaliação será feita por meio de uma entrevista com todos os integrantes do grupo. � Exercícios e Participação = listas de exercícios, atividades complementares e participação em aula � Prova de reposição = toda a matéria, apenas para alunos que não realizaram uma das provas UFMG DCC011 - profa. Mirella Moro 10 Exercício 1 � PRAZO DE ENTREGA VIA MOODLE: 10/02 às 17hs (*antes* da aula) � Essa atividade deve ser enviada via moodle. É muito simples: basta responder as perguntas abaixo e enviar as respostas via Moodle. Após as perguntas, são apresentadas algumas fontes online que podem ajudar nas respostas. OBSERVAÇÃO: copy/paste não será aceito (!seja criativo e objetivo em suas respostas!) � PERGUNTAS � (1) O que é um Banco de Dados? � (2) Por que o sistema de matrículas da UFMG utiliza um SGBD para gerenciar seus dados em vez de utilizar um sistema de arquivos robusto? � (3) Quais são as opções de carreira em BD ou o q. faz profissional de BD? � (4) Quais são os temas de pesquisa em BD na UFMG e quem são seus pesquisadores? � FONTES � SLIDES DCC011 AULA 1 � SBC Horizontes Dezembro/2008: Qual o Papel de um DBA?, por Carina F. Dorneles e Ronaldo S. Mello. � prof. João Eduardo Ferreira, Introdução a Banco de Dados, CAPÍTULO 2 � Edilberto Magalhães Silva, Introdução a Banco de Dados, CAPÍTULO 2 Conceitos Básicos O que é um banco de dados? Como manipular um banco de dados? UFMG DCC011 - profa. Mirella Moro 13 Problemas com Fichário Uma gaveta aberta por vez Uma pessoa por vez acessando Busca praticamente sequencial Quem que pode atualizar a ficha? Posso tirar duas fichas ao mesmo tempo? Duas pessoas diferentes podem ter fichas? E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não encontra a ficha, então cria uma nova ficha; quando a uma devolver a ficha, serão duas fichas diferentes para o mesmo cliente! E se perde a ficha? E se pega fogo em tudo? E SE EU PRECISAR DE FICHÁRIOS DIFERENTES PARA DADOS DIFERENTES? UFMG DCC011 - profa. Mirella Moro 14 Universidade Professores Alunos Disciplinas Curriculo Turmas Cursos Horários UFMG DCC011 - profa. Mirella Moro 15 Dados UFMG DCC011 - profa. Mirella Moro 16 Dados UFMG DCC011 - profa. Mirella Moro 17 Questões � Dados necessários? � Modelagem de dados? � Evitando redundância, obviamente � Consulta a dados? � Atualização de dados? � Controle de acesso? � Alunos não acessam os mesmos dados que professores... Ou que funcionários... � ... UFMG DCC011 - profa. Mirella Moro 18 Banco de Dados • Fornece acesso seguro e eficiente a grandes quantidades de dados • Resolve problemas – Armazenamento – Consulta eficiente – Acesso e atualização com segurança: por múltiplos usuários • Melhor do que usar fichários e arquivos... UFMG DCC011 - profa. Mirella Moro 19 UFMG DCC011 - profa. Mirella Moro 20 Definições Preliminares � [Chu, 1985] � Um banco de dados é um conjunto de arquivos relacionados entre si. � [Date, 1975] � Um banco de dados é uma coleção de dados operacionais usados pelas aplicações de uma determinada organização. UFMG DCC011 - profa. Mirella Moro 21 Outra Definição � [Elmasri & Navathe, 2000] � Um banco de dados é uma coleção de dados relacionados � Entretanto, um BD possui as seguintes propriedades implícitas: 1. Representa aspectos do mundo real (mini-mundo ou universo de discurso) 2. É uma coleção de dados logicamente coerentes com algum significado inerente 3. É projetado, construído e instanciado (“povoado”) para uma aplicação específica UFMG DCC011 - profa. Mirella Moro 22 Banco de Dados por tudo � Informática �� Banco de Dados � Economia, Engenharia, Medicina, Direito, Educação, … � Qualquer aplicação precisa de dados � Dados precisam ser armazenados, gerenciados, consultados, recuperados SGBD UFMG DCC011 - profa. Mirella Moro 23 Sist. de Gerência de Banco de Dados � Um sistema de gerência de banco de dados (SGBD) é um conjunto de programas que permite criar e manter (manipular) um banco de dados � BD + SGBD = sistema de banco de dados UFMG DCC011 - profa. Mirella Moro 24 Consultas/Programas SGBD Banco de Dados Usuários/Programadores Catálogo (Meta-Dados) Sistema de Banco de Dados MS Access Oracle IBM DB2 My SQL PostgreSQL UFMG DCC011 - profa. Mirella Moro 25 Usuários / Programadores � Administrador (DBA) � Administra o BD e o SGBD � Autorizar acesso ao BD, coordenar e monitorar a utilização, adquirir hw e sw � Resolver problemas: violação de sergurança, tempo de resposta � Projetista � Identificar os dados e escolher estruturas apropriadas para representar e armazenar � Antes de implementar/instanciar o BD � Analista sistema e Programadores aplicações (eng. sw) � Analistas: necessidades dos usuários + especificações acesso padrão � Programadores: implementam as especificações, testes, documentos, manutenção � Usuário final � Acessar o BD: consultas, atualizações, relatórios … UFMG DCC011 - profa. Mirella Moro 26 Exemplo de um Banco de Dados NumEmp NomeEmp Salário Dept 032 J Silva 380 21 074 M Reis 400 25 089 C Melo 520 28 092 R Silva 480 25 112 R Pinto 390 21 121 V Simão 905 28 130 J Neves 640 28 NumDept NomeDept Ramal 21 Pessoal 142 25 Financeiro 143 28 Técnico 144 Empregado Departamento Esquema do banco de dados DeptSalárioNomeEmpNumEmp RamalNomeDeptNumDept Empregado Departamento UFMG DCC011 - profa. Mirella Moro 27 Vantagens de usar um BD � Controle de redundância dos dados � Controle de acesso (segurança) � Armazenamento persistente dos dados � Existência de múltiplas interfaces para os usuários � Representação de relacionamentos complexos entre os dados � Manutenção de restrições de integridade � Acesso multi-usuário (controle de concorrência e recuperação de falhas) Projeto de Banco de Dados UFMG DCC011 - profa. Mirella Moro 29 Projeto de Banco de Dados Modelo Lógico Visão Externa1 Visão Externa2 Modelo Conceitual Modelo Físico requisitosrequisitos Esquema Conceitual Esquema Lógico Esquema Físico INDEPENDENTE de SGBD DEPENDENTE de SGBD UFMG DCC011 - profa. Mirella Moro 30 Mini-Mundo Análise de Requisitos Requisitos do BD Projeto Conceitual Esquema Conceitual (em um modelo de dados de alto nível) Projeto Lógico Esquema Lógico (em um modelo de dados lógico) Projeto Físico Esquema Físico (para um SGBD específico) Requisitos Funcionais Análise Funcional Especificação das Transações (em alto nível) Projeto das Aplicações Implementação Programas Independente de SGBD Específico para um SGBD Projeto de Bancos de Dados Tópicos Importantes UFMG DCC011 - profa. Mirella Moro 32 Tópicos Importantes � Estruturas de armazenamento de dados � Modelagem e projeto de bancos de dados � Modelos de dados � Linguagens � Processamento de consultas � Controle de concorrência � Segurança e integridade � Recuperação de falhas Aplicações UFMG DCC011 - profa. Mirella Moro 34 Aplicações � Bancos de dados multimídia – figuras, videos, sons, voz � GIS, Sistemas de informações geográficas – mapas, dados meteorológicos, imagens satélite � Web � Web????? UFMG DCC011 - profa. Mirella Moro 35 Aplicações � Automação administrativa (ex., bancos, hospitais, bibliotecas, empresas, etc.) � Gerência de dados científicos (ex., Genoma) � Projeto assistido por computador (ex., aviões, circuitos integrados) � Comércio eletrônico � Bibliotecas digitais � Sistemas de apoio a decisão UFMG DCC011 - profa. Mirella Moro 36 Aplicações, exemplos Aplicação � Aplicações bancárias � Reservas de vôos � Aplicações hospitalares � Universidades Dados � contas bancárias agências � vôos passageiros pilotos � pacientes médicos remédios � estudantes turmas professores UFMG DCC011 - profa. Mirella Moro 37 Aplicações de BD: evolução Sistemas de Arquivos Banco de Dados Em Rede Relacional Hierárquico Modelos Semânticos Modelos de Objetos Complexos Bancos de Dados Orientados a Objetos Linguagens Orientadas a Objetos Multimídia Hipermídia Agentes Bancos de Dados Inteligentes Recuperação de Informação Geoprocessamento Redes Banco de Dados no DCC/UFMG UFMG DCC011 - profa. Mirella Moro 39 Disciplinas no DCC � Graduação � Introdução a Bancos de Dados � Tópicos Avançados em Bancos de Dados � Pós-Graduação � Bancos de Dados � Bancos de Dados Distribuídos � Tópicos em Bancos de Dados � Modelagem Conceitual � Sistemas Avançados de Banco de Dados � Gerência de Dados da Web � Bibliotecas Digitais Grupo de Pesquisa no DCC UFMG DCC011 - profa. Mirella Moro 40 Alberto Laender Modelagem & Projeto BD Gerência de Dados Web Modelagem, Extração e Integração de Dados Web Rodrygo L. T. Santos Busca de Dados Web Gerência de Dados Web Recuperação de Informação Clodoveu Davis Jr. Geoprocessamento Sistemas Informação Geográfica Bancos de Dados Geográficos Dados Espaciais Marcos A. Gonçalves Bibliotecas Digitais Recuperação de Informação Gerência de Dados Web Mirella M. Moro Gerência de Dados Web Gerência de Dados XML Processamento de Consultas Disseminação de Conteúdo UFMG DCC011 - profa. Mirella Moro 41 Principais Linhas de Pesquisa � Métodos e ferramentas para projeto de bancos de dados � Sistemas de informação para a Web � Gerência de dados da Web � Bibliotecas digitais � Redes Sociais � NoSQL, BigData Perguntas www.dcc.ufmg.br/~mirella >> ALUNOS >> IBD Aulas/aula02.pdf DCC011: Introdução a Banco de Dados Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa � Introdução � Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. � Modelos de dados e linguagens� Modelos de dados e linguagens � Modelo entidade-relacionamento (ER), modelo realcional, álgebra relacional, SQL. � Projeto de bancos de dados � Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. � Novas Tecnologias e Aplicações de Banco de Dados � Bancos de dados orientados a objetos e objeto-relacionais, dados semi-estruturados e XML. UFMG DCC011 - profa. Mirella Moro 2 Sumário � Introdução � Exemplo, Características, Vantagens, Implicações � Quando não utilizar um SGBD � Conceitos e Arquitetura do SBD� Conceitos e Arquitetura do SBD � Modelos de Dados, Esquemas e Instâncias � Categorias de Modelos de Dados � Arquitetura de Três Esquemas e Independência de Dados � Linguagens e Interfaces � Módulos de Componentes do SGBD e Utilitários � Classificação dos SGBDs UFMG DCC011 - profa. Mirella Moro 3 Introdução 1. Conceitos básicos 2. Exemplo 3. Características 4. Vantagens 5. Implicações 6. Quando não utilizar um SGBD 1. O que é um Banco de Dados? � [Elmasri & Navathe, 2000] � Um banco de dados é uma coleção de dados relacionados � Representando algum aspecto do mundo real � Representando algum aspecto do mundo real (mini-mundo ou universo de discurso) � Logicamente coerente, com algum significado � Projetado, construído e gerado (“povoado”) para uma aplicação específica UFMG DCC011 - profa. Mirella Moro 5 Sistema de Gerência de Banco de Dados � Um sistema de gerência de banco de dados (SGBD) é um conjunto de programas que permite criar e manter um banco de dadosum banco de dados � BD + SGBD = sistema de banco de dados UFMG DCC011 - profa. Mirella Moro 6 Consultas/Programas SGBD Usuários/Programadores MS Access Oracle Exemplos de SGBDs???? SGBD Banco de Dados Catálogo (Meta-Dados) Sistema de Banco de Dados Oracle IBM DB2 My SQL PostgreSQL UFMG DCC011 - profa. Mirella Moro 7 2. Exemplo de um Banco de Dados � Mini-mundo: parte de uma universidade � Alguns integrantes � Alunos � Disciplinas� Disciplinas � Departamentos � Alguns relacionamentos � Disciplinas são oferecidas por Departamentos � Alunos estão matriculados em Disciplinas UFMG DCC011 - profa. Mirella Moro 8 Exemplo de um Banco de Dados UFMG DCC011 - profa. Mirella Moro 9 Exemplo de um Banco de Dados UFMG DCC011 - profa. Mirella Moro 10 3. Características da Abordagem de BD � Auto-descrição dos dados � Isolamento entre programas e dados: abstração de dadosabstração de dados � Suporte a múltiplas visões dos dados � Compartilhamento de dados e processa- mento de transações concorrentes UFMG DCC011 - profa. Mirella Moro 11 4. Vantagens da Utilização de um SGBD � Controle de redundância dos dados � Compartilhamento informações replicadas � Manutenção de restrições de integridade � Controle de acesso (segurança) Armazenamento persistente dos dados� Armazenamento persistente dos dados � Existência de múltiplas interfaces para os usuários � Representação de relacionamentos complexos entre os dados � Recuperação de falhas UFMG DCC011 - profa. Mirella Moro 12 5. Implicações da Abordagem de BD � Adoção/imposição de padrões � Redução do tempo de desenvolvimento das aplicações � Flexibilidade � Atualidade da informação disponível � Economia de escala UFMG DCC011 - profa. Mirella Moro 13 6. Quando não Utilizar um SGBD � Aplicações simples e bem definidas onde não se espera mudanças � Aplicações de tempo-real � Aplicações onde não é necessário acesso multi-� Aplicações onde não é necessário acesso multi- usuário � Motivos: � Investimento inicial alto � Generalidade na definição e manipulação dos dados � Custo adicional para prover outras facilidades funcionais (manutenção de segurança, controle de concorrência, recuperação de falhas, etc.) UFMG DCC011 - profa. Mirella Moro 14 Conceitos e Arquitetura do SBD 1.Modelos de Dados, Esquemas e Instâncias 2. Categorias de Modelos de Dados 3. Arquitetura de Três Esquemas e Independência de Dados 4. Linguagens e Interfaces 5.Módulos de Componentes do SGBD e Utilitários 6. Classificação dos SGBDs 1. Modelo de Dados, Esquema e Instância Modelo Modelo de Dados Esquema Instância Regras para estruturação dos dados Regras para verificação das instâncias UFMG DCC011 - profa. Mirella Moro 16 Modelo de Dados, Esquema e Instância � Modelo de dados: Conjunto de conceitos descrevem a estrutura de um BD � Abstração de dados � Estrutura = tipos de dados + relacionamentos + restrições (+operações � recuperação e atualização)restrições (+operações � recuperação e atualização) � Esquema: Descrição (textual ou gráfica) da estrutura de um BD de acordo com um determinado modelo de dados � Instância: Conjunto de dados armazenados em um BD em um determinado instante de tempo UFMG DCC011 - profa. Mirella Moro 17 Modelo de Dados, Esquema e Instância Esquema do banco de dados de exemplo UFMG DCC011 - profa. Mirella Moro 18 Modelo de Dados, Esquema e Instância UFMG DCC011 - profa. Mirella Moro 19 Modelo de Dados, Esquema e Instância � Esquema do BD � Armazenado no catálogo � Mudanças muito menos freqüentes � Estado do BD � Dados do banco em qualquer ponto do tempo � Inicialmente vazio � Muda frequentemente � Validade parcialmente guarantida pelo SGBD UFMG DCC011 - profa. Mirella Moro 20 2. Categorias de Modelo de Dados MODELOS CONCEITUAIS � Descrevem a estrutura de um BD de uma forma mais próxima da percepção dos usuários � Independente de aspectos de implementação� Independente de aspectos de implementação � Conceitos: entidades, atributos, relacionamentos � Exemplos: � Modelo entidade-relacionamento (ER) � Modelo funcional � Modelo orientado a objetos (OO) UFMG DCC011 - profa. Mirella Moro 21 Categorias de Modelo de Dados MODELOS REPRESENTACIONAIS (lógicos) � Descrevem a estrutura de um BD da forma como será manipulado através de SGBD � Mais dependente das estruturas físicas de armazenamento de dadosarmazenamento de dados � Exemplos: � Modelo relacional � Modelo de rede (CODASYL) � Modelo hierárquico UFMG DCC011 - profa. Mirella Moro 22 Categorias de Modelo de Dados MODELOS FÍSICOS � Descrevem como os dados são fisicamente armazenados � Conceitos: formatos dos registros, � Conceitos: formatos dos registros, ordenamento dos registros, caminhos de acesso (eficiência) UFMG DCC011 - profa. Mirella Moro 23 3. Arquitetura de um Sistema de BD Características do enfoque de BD � Isolamento de programas e dados � Suporte de visões múltiplas de usuários � Catálogo para armazenar a descrição � Catálogo para armazenar a descrição (esquema) do BD Arquitetura de três níveis � Mantém independência de dados e programas � Suporta múltiplas visões UFMG DCC011 - profa. Mirella Moro 24 Arquitetura de um Sistema de BD Componentes 1. Esquema interno � Descreve armazenamento físico 2. Esquema conceitual2. Esquema conceitual � Descreve entidades, tipos de dados, relacionamentos, operações e restrições � Esconde detalhes de armazenamento 3. Esquemas externos (visões) � Descreve porções do banco para diferentes comunidades UFMG DCC011 - profa. Mirella Moro 25 Arquitetura de um Sistema de BD UFMG DCC011 - profa. Mirella Moro 26 Arquitetura de um Sistema de BD exemplo 1 Esquema conceitual � Estudantes (eid: string, nome: string, login: string, idade: integer, gpa:real) � Cursos (cid: string, cnome:string, creditos:integer) � Matricula (eid:string, cid:string, nota:string)� Matricula (eid:string, cid:string, nota:string) Esquema Físico � Relações guardadas como arquivos desordenados � Índices na primeira colunas de estudantes Esquema externo (Visão): � Info_Curso(cid:string, horário:string) UFMG DCC011 - profa. Mirella Moro 27 Arquitetura de um Sistema de BD exemplo 2 EXTERNO (Ling. Pascal) Funcionario = Record nome: string(30); salario: real; End; EXTERNO (Ling. Cl) Participante = struct { char[30] Nome; int Departamento; } CONCEITUAL Empregado NOME CHARACTER (30)NOME CHARACTER (30) SALARIO NUMERIC (5) DEPARTAMENTO NUMERIC (2) SEXO CHARACTER (1) INTERNO RegistroEmpregadoLENGTH=50 NOME TYPE= BYTE(30) SAL TYPE=FULLWORD DEP TYPE=WORD SEXO TYPE=BYTE(1) UFMG DCC011 - profa. Mirella Moro 28 Altera um nível Altera Visão Externa Esquema Conceitual Altera nível vizinho Dependência de Dados Independência de Dados Esquema Físico UFMG DCC011 - profa. Mirella Moro 29 Independência de Dados � Capacidade de se alterar o esquema em um determinado nível sem alterar o esquema (ou esquemas) do nível imediatamente mais alto imediatamente mais alto VANTAGEM: � Imunidade dos programas em relação a mudanças na estrutura do banco de dados � Um dos maiores benefícios de usar SGBD UFMG DCC011 - profa. Mirella Moro 30 Independência de Dados Independência de dados lógica � Capacidade de alterar o esquema conceitual sem alterar esquema externo ou aplicações � Ex. Expansão ou redução� Ex. Expansão ou redução Independência de dados física � Capacidade de mudar o esquema interno sem mudar o esquema conceitual (ou externo) � Ex. Reorganização de arquivos para melhorar desempenho UFMG DCC011 - profa. Mirella Moro 31 Arquitetura de um Sistema de BD Esquema Externo 1 Esquema Externo 2 Esquema Externo n Nível Externo Visão de cada usuário Nível Conceitual Independência lógica Esquema Conceitual Esquema Interno Nível Conceitual Visão comunitária Nível Interno Visão do armazenamento físico lógica Independência física UFMG DCC011 - profa. Mirella Moro 32 4. Linguagens � Linguagem de definição de dados (DDL) � Usada para definir esquemas � Linguagem de manipulação de dados (DML)(DML) � Recuperação, inserção, remoção, modificação � Linguagem de consulta � DML de alto nível usada em modo “stand- alone” � Exemplo: SQL UFMG DCC011 - profa. Mirella Moro 33 Interfaces � Baseadas em menus � Baseadas em formulários � Gráficas (GUI), diagramas Baseadas em linguagem natural� Baseadas em linguagem natural � Para leigos � Para DBAs UFMG DCC011 - profa. Mirella Moro 34 5. Módulos de Componentes do SGBD UFMG DCC011 - profa. Mirella Moro 35 Utilitários � Carga (loading) � Arquivos dados � Banco de Dados � Cópia de segurança (backup) � Para restaurar em caso de falhas� Para restaurar em caso de falhas � (Re-)Organização de arquivos � Melhorar o desempenho � Monitoramento do desempenho � Fornece estatísticas para o DBA: informações sobre desempenho � reorganização UFMG DCC011 - profa. Mirella Moro 36 6. Classificação dos SGBDs � Quanto ao modelo de dados adotado � De rede � Hierárquicos � Relacionais � Orientados a objetos� Orientados a objetos � Objeto-relacionais � Quanto ao número de usuários suportados � Mono-usuários � Multi-usuários � Quanto à localização dos dados � Centralizados � Distribuídos UFMG DCC011 - profa. Mirella Moro 37 Exemplo de um BD Relacional NumEmp NomeEmp Salário Dept 032 J Silva 380 21 074 M Reis 400 25 089 C Melo 520 28 092 R Silva 480 25 112 R Pinto 390 21 Empregado 112 R Pinto 390 21 121 V Simão 905 28 130 J Neves 640 28 NumDept NomeDept Ramal 21 Pessoal 142 25 Financeiro 143 28 Técnico 144 Departamento UFMG DCC011 - profa. Mirella Moro 38 Exemplo de um BD de Rede 21 Pessoal 142 032 J Silva 380 089 C Melo 520 074 M Reis 400 Departamento Empregado 25 Financeiro 143 28 Técnico 144 112 R Pinto 390 121 V Simão 905 130 J Neves 640 092 R Silva 480 089 C Melo 520 UFMG DCC011 - profa. Mirella Moro 39 Exemplo de um BD Hierárquico 21 Pessoal 142 25 Financeiro 143 28 Técnico 144 Departamento Empregado 032 J Silva 380 112 R Pinto 390 121 V Simão 905 130 J Neves 640 092 R Silva 480 089 C Melo 520074 M Reis 400 Empregado UFMG DCC011 - profa. Mirella Moro 40 REVISÃO � BD, SGBD, SBD Modelo de Dados Esquema Instância Regras para estruturação dos dados Regras para verificação das instâncias � Modelos: conceitual, lógico, físico � Independência de dados � DDL, DML � Modelo: tipo, nro usuários, localização UFMG DCC011 - profa. Mirella Moro 41 EXERCÍCIO � ELMASRI & NAVATHE, CAP 2, exercício: � 2.11 – Escolha uma aplicação de BD com a qual você esteja familiarizado. Projete um esquema e apresente um BD para aquela aplicação, utilizando figs 2.1 e 1.2. que tipos de informações e restrições adicionais você que tipos de informações e restrições adicionais você gostaria de representar no esquema? Imagine diversos usuários para seu BD e projete uma visão para um usuário. � OU: utilize a representação em texto UFMG DCC011 - profa. Mirella Moro 42 Exercício 2.11 – Escolha uma aplicação de BD com a qual você esteja familiarizado. Projete um esquema e apresente um BD para aquela aplicação, utilizando figs 2.1 e 1.2. que tipos de informações e restrições adicionais você gostaria de representar no esquema? Imagine diversos usuários para seu BD e projete uma visão para um usuário. FIGURA 2.1 FIGURA 1.2 – primeira tabelaUFMG DCC011 - profa. Mirella Moro 43 Exercício 2.11 – Representação em texto FIGURA 2.1 FIGURA 1.2 – primeira tabela ALUNO: nome, numero, turma, curso CURSO: nome, numero, creditos, depto PRE-REQ: curso, prereq DISCIPLINA: id, curso, sem, ano, prof NOTAS: aluno, disc, nota UFMG DCC011 - profa. Mirella Moro 44 Aulas/aula03.pdf DCC011 Introdução a Banco de Dados -03Introdução a Banco de Dados -03 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa � Introdução � Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. � Modelos de dados e linguagens 2 � Modelos de dados e linguagens � Modelo entidade-relacionamento (ER), modelo relacional, álgebra relacional, SQL. � Projeto de bancos de dados � Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. � Novas Tecnologias e Aplicações de Banco de Dados UFMG DCC011 - profa. Mirella Moro Modelo Entidade-Relacionamento 1. Aplicação exemplo 2. Entidades, atributos 3. Relacionamentos 4. Restrições sobre relacionamentos 5. Papéis e relacionamentos recursivos 6. Entidade fraca Processo de Projeto de Bancos de Dados Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nível 4 Independente de SGBD UFMG DCC011 - profa. Mirella Moro 1. Aplicação exemplo � Banco de Dados de uma companhia � Organizada em departamentos: � um nome único � um número único � um empregado que gerencia o departamento 5 � um empregado que gerencia o departamento � a data de quando o empregado começou a gerenciar o departamento deve ser registrada � um departamento pode ter varias localizações � Um departamento controla um número de projetos: � cada qual com um nome e número únicos � uma única localização UFMG DCC011 - profa. Mirella Moro Aplicação exemplo � Cada empregado: � nome, identidade, endereço, salário, sexo, data nascimento � um empregado é assinalado a um departamento � pode trabalhar em diversos projetos, os quais não são necessariamente controlados pelo mesmo departamento 6 � o número de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado � Registro para cada empregado � número de dependentes (para seguro) � para cada dependente: � primeiro nome, sexo, data de nascimento e relacionamento com o empregado UFMG DCC011 - profa. Mirella Moro M UFMG DCC011 - profa. Mirella Moro 7 Fig. 3.2 Esquema conceitual 2. Entidades, atributos Entidades � Objetos do mundo real que são de interesse para alguma aplicação Atributos � Propriedades para descrever uma entidade UFMG DCC011 - profa. Mirella Moro 8 � Propriedades para descrever uma entidade Tipos de Atributos � Simples ou compostos � Ex. Endereço � Monovalorados ou multivalorados � Ex. Profissão � Armazenados ou derivados Endereço End_Rua Cidade Estado CEP Rua Nro Apto UFMG DCC011 - profa. Mirella Moro 9 � Armazenados ou derivados � Data de Nascimento → Idade, � Empregados trabalhando no departamento → NumeroDeEmpregados � Valores Null � Não aplicável: Número do apartamento � Desconhecido: Telefone de casa Tipos de Entidade Tipo de entidade � Define um conjunto de entidades que têm os mesmos atributos (propriedades) � Descreve o esquema para um conjunto de UFMG DCC011 - profa. Mirella Moro 10 � Descreve o esquema para um conjunto de entidades que compartilham a mesma estrutura � Exemplos � Empregado, Empresa UFMG DCC011 - profa. Mirella Moro 11 Fig. 3.5 – Duas entidades Empregado e Empresa, e algumas instâncias dos dados Chave e Domínio Chave de um tipo de entidade � Atributo que possui valor único para cada entidade (instância) � Ex. Nome da companhia, identidade do empregado � Chave pode ser formada por vários atributos: chave composta UFMG DCC011 - profa. Mirella Moro 12 � Chave pode ser formada por vários atributos: chave composta � Registro do Veiculo: Numero de Registro e Estado Domínio de um atributo � Conjunto de valores que podem ser atribuídos a um atributo para cada entidade individualmente � Ex. Idade do Empregado: (16,70); Nome do Empregado:String UFMG DCC011 - profa. Mirella Moro 13 Fig. 3.7 - O tipo entidade CARRO com dois atributos-chave, Registro e IDVeiculo UFMG DCC011 - profa. Mirella Moro 14 Fig. 3.8 - Projeto inicial dos tipos entidade para o banco de dados EMPRESA. 3. Relacionamentos � Associações entre duas ou mais entidades distintas (instâncias) com um significado � Exemplo: � Empregado John Smith trabalha para UFMG DCC011 - profa. Mirella Moro 15 � Empregado John Smith trabalha para Departamento pesquisa � Empregado Fred Brown gerencia Departamento pesquisa � Departamento pesquisa controla Projeto X Tipo de Relacionamento � Define um conjunto de associações entre n tipos de entidade E1, E2,...,En � Exemplo: Trabalha_para entre Empregado e UFMG DCC011 - profa. Mirella Moro 16 � Trabalha_para entre Empregado e Departamento Empregado trabalha para Departmento Tipo de Relacionamento � Matematicamente, um tipo de relacionamento R é um conjunto de (instâncias de) relacionamentos ri, onde cada ri associa n (instâncias de) entidades (e1,...,en) e cada ej pertence a um tipo de entidade E UFMG DCC011 - profa. Mirella Moro 17 pertence a um tipo de entidade Ej � R ∈ E1 x E2 x ... x En � ri = (e1, ..., en) � Grau de um Tipo de Relacionamento � Número de tipos de entidade participantes de um tipo de relacionamento UFMG DCC011 - profa. Mirella Moro 18 Figura 3.9 Algumas instâncias do conjunto de relacionamento TRABALHA_PARA, que representa um tipo relacionamento TRABALHA_PARA entre EMPREGADO e DEPARTAMENTO. UFMG DCC011 - profa. Mirella Moro 19 Figura 3.10 Algumas instâncias de relacionamento do conjunto de relacionamento ternário FORNECE. Restrições sobre relacionamentos � Limitam as possíveis combinações de entidades que podem participar no conjunto de relacionamentos � Cardinalidade: número de instâncias de um tipo de relacionamento do qual uma entidade pode participar � Participação: se a existência de uma entidade depende UFMG DCC011 - profa. Mirella Moro 20 � Participação: se a existência de uma entidade depende de seu relacionamento com outra entidade através de um tipo de relacionamento � parcial ou total � Ex. Todo empregado deve trabalhar p/ um departamento (total) � Ex. Nem todo empregado gerencia um departamento (parcial) � Cardinalidade + Participação � Restrições Estruturais UFMG DCC011 - profa. Mirella Moro 21 Figura 3.12 Relacionamento GERENCIA 1:1 UFMG DCC011 - profa. Mirella Moro 22 Figura 3.13 Relacionamento TRABALHA_EM, M:N M UFMG DCC011 - profa. Mirella Moro 23 Esquema conceitual 5. Papéis e Relacionamentos Recursivos � Entidades atuam com um determinado papel � Significado do papel é dado por um nome, atribuído a cada tipo de entidade � Nomes só são necessários em tipos de UFMG DCC011 - profa. Mirella Moro 24 � Nomes só são necessários em tipos de relacionamento que envolvam mais de uma vez o mesmo tipo de entidade � relacionamentos recursivos � Exemplo: Supervisão, onde Empregado tem os papéis de Supervisor e Subordinado UFMG DCC011 - profa. Mirella Moro 25 Figura 3.11 Um relacionamento recursivo SUPERVISAO entre EMPREGADO, no papel de supervisor (1), e EMPREGADO, no papel de subordinado (2). 6. Entidade Fraca � Tipos de entidade que não têm chave própria � As instâncias são identificadas através do relacionamento com entidades de outro UFMG DCC011 - profa. Mirella Moro 26 relacionamento com entidades de outro tipo, chamado de dono ou identificador, juntamente com os valores de alguns atributos (chave parcial) � Exemplo: Dependente M UFMG DCC011 - profa. Mirella Moro 27 Notação ER UFMG DCC011 - profa. Mirella Moro 28 Notação ER UFMG DCC011 - profa. Mirella Moro 29 UFMG DCC011 - profa. Mirella Moro 30Figura 3.15 Diagrama ER para o esquema EMPRESA. Resumo � Atributos: simples, composto, multi- valorado � Entidades e seus conjuntos � Atributos-chave UFMG DCC011 - profa. Mirella Moro 31 � Atributos-chave � Papéis � Cardinalidades (1:1, 1:N, N:M) � Participação (total, parcial) Exercícios 1. Formula 1 2. Agência de viagens 3. Artigos publicados 4. Loja equipamento fotográfico Identificar nesta ordem UFMG DCC011 - profa. Mirella Moro 32 Identificar nesta ordem a) as entidades b) os atributos de cada entidade c) os identificadores de cada entidade d) os principais relacionamentos e) as cardinalidades mínimas/máximas f) desenhar o modelo entidade-relacionamento Aulas/aula04.pdf DCC011 Introdução a Banco de Dados -04Introdução a Banco de Dados -04 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Modelo Entidade-Relacionamento 1.Revisão1.Revisão 2.UML 3.Abstração de Dados e Representação de Conhecimento 4.Exercícios Processo de Projeto de Bancos de Dados Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nível Independente de SGBD 4UFMG DCC011 - profa. Mirella Moro 1. Revisão � Entidades, atributos, relacionamentos � Atributos: simples, composto, multi-valorado � Atributos-chave � Papéis � Papéis � Relacionamentos � Cardinalidades (1:1, 1:N, N:M) � Participação (total, parcial) � Generalização/Especialização � Total/parcial; sobreposta/disjunta; múltipla 5UFMG DCC011 - profa. Mirella Moro Notação ER ATRIBUTO ATRIBUTO-CHAVE 6UFMG DCC011 - profa. Mirella Moro Notação ER 7UFMG DCC011 - profa. Mirella Moro supervisor supervisionado 8UFMG DCC011 - profa. Mirella MoroUFMG DCC011 - profa. Mirella Moro 8Figura 3.15 Diagrama ER para o esquema EMPRESA. 2. Modelagem usando UML � Classes: 10UFMG DCC011 - profa. Mirella Moro Modelagem usando UML � Associações: 11UFMG DCC011 - profa. Mirella Moro Modelagem usando UML � Associações (especializacao/generalizacao): 12UFMG DCC011 - profa. Mirella Moro Modelagem usando UML � Associações (agregação): 13 Polygon Point3..*1 contains UFMG DCC011 - profa. Mirella Moro Modelagem usando UML � Associações (qualificador): 14UFMG DCC011 - profa. Mirella Moro Modelagem usando UML Hierarquia de Especialização/Generalização UFMG DCC011 - profa. Mirella Moro 15 Figura 4.10 Um diagrama de classe correspondente ao diagrama EER da Figura 4.7 ilustrando as notações UML para especialização/generalização. Modelagem usando UML 16UFMG DCC011 - profa. Mirella Moro 3. Conceitos de Abstração � Conceitos abstratos do Modelo Conceitual � aplicam-se a outras áreas � Exemplo: Representação de Conhecimento (KR – Knowledge Representation)(KR – Knowledge Representation) � KR � Conceitos para modelar algum domínio de discurso, criando uma ontologia � Ontologia: descreve os conceitos do domínio 17UFMG DCC011 - profa. Mirella Moro Knowledge Representation Modelagem Conceitual � Comum � Processo de abstração para identificar propriedades comuns e aspectos importantes de objetos no minimundo � Conceitos, restrições, operações e linguagens para definir dados e representar conhecimentodefinir dados e representar conhecimento � Diferente � KR = mais ampla � regras (inferência, dedução e pesquisa), conhecimento incompleto, temporal e espacial � KR = inclui mecanismos de raciocínio (dedução, inferência) � KR = mistura esquemas e instâncias 18UFMG DCC011 - profa. Mirella Moro LEITURA � Elmasri/Navathe � 3a edição: 4.8 (5a edição: 4.7) � Classificação e Instanciação � Identificação� Identificação � Especialização e Generalização � Agregação e Associação 19UFMG DCC011 - profa. Mirella Moro Aulas/aula05.pdf DCC011 Introdução a Banco de Dados -05Introdução a Banco de Dados -05 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa � Introdução � Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. � Modelos de dados e linguagens 2 � Modelos de dados e linguagens � Modelo entidade-relacionamento (ER), modelo relacional, álgebra relacional, SQL. � Projeto de bancos de dados � Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. � Novas Tecnologias e Aplicações de Banco de Dados UFMG DCC011 - profa. Mirella Moro Modelo Entidade-Relacionamento 1.Revisão 2.Generalização e especialização 3.Restrições sobre Hierarquias de Especialização/Generalização 4.Relacionamento ternário Processo de Projeto de Bancos de Dados Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nível PONTO DE PARTIDA USANDO O MODELO ER 4 Independente de SGBD UFMG DCC011 - profa. Mirella Moro 1. Revisão � Entidades, atributos, relacionamentos � Atributos: simples, composto, multi- valorado � Atributos-chave 5 � Atributos-chave � Papéis � Relacionamentos � Cardinalidades (1:1, 1:N, N:M) � Participação (total, parcial) UFMG DCC011 - profa. Mirella Moro Notação ER 6UFMG DCC011 - profa. Mirella Moro ATRIBUTO ATRIBUTO-CHAVE Notação ER 7UFMG DCC011 - profa. Mirella Moro supervisor supervisionado UFMG DCC011 - profa. Mirella Moro 8Figura 3.15 Diagrama ER para o esquema EMPRESA. � Necessário saber que medicamentos existem e que medicamentos foram Entidade-associativa médico pacienteconsultam n 9 existem e que medicamentos foram prescritos em cada consulta � Medicamento � Relacionada a Médico? � Relacionada a Paciente? UFMG DCC011 - profa. Mirella Moro Entidade-associativa � “Relacionamento de relacionamento” médico pacienteconsultan n 10 n n medicamento prescrição n n UFMG DCC011 - profa. Mirella Moro 2. Especialização e Generalização � Especialização: � Processo de definição de um conjunto de sub-classes (sub-tipos) de um tipo de entidade � Generalização: 11 � Processo de definição de um tipo de entidade genérico (super-classe ou super-tipo) a partir de um conjunto de tipos de entidade � Exemplo: {secretária, engenheiro, técnico} é uma especialização de Empregado; ou Empregado é uma generalização de {secretária, engenheiro, técnico} UFMG DCC011 - profa. Mirella Moro Especialização e Generalização � Toda instância de uma sub-classe (ou sub-tipo) é também instância de sua super-classe (ou super-tipo) � Ex.: “John Smith” é um engenheiro e também é um empregado 12 empregado � Herança de Tipo: � Uma entidade de uma sub-classe tem todos os atributos e relacionamentos da super-classe � Em outra palavras, ela herda todos os atributos e relacionamentos da super-classe � E pode definir seus proprios atributos e relacionamentos locais ou especificos (*) UFMG DCC011 - profa. Mirella Moro 13 Figura 4.1 Notação de diagrama EER para representar as subclasses e a especialização. UFMG DCC011 - profa. Mirella Moro 14 Figura 4.2 Instâncias de uma especialização. UFMG DCC011 - profa. Mirella Moro Especialização O processo de especialização permite: � Definir um conjunto de sub-classes (sub- tipos) de um tipo de entidade � Estabelecer atributos específicos adicionais 15 � Estabelecer atributos específicos adicionais para cada sub-classe (sub-tipo) � Estabelecer tipos de relacionamentos especificos adicionais entre cada sub- classe (sub-tipo) e outros tipos de entidades ou outras sub-classes (sub- tipos). UFMG DCC011 - profa. Mirella Moro 16 Figura 4.3 Generalização. (a) Dois tipos de entidade, CARRO e CAMINHAO. (b) Generalizando CARRO e CAMINHAO na superclasse VEICULO. UFMG DCC011 - profa. Mirella Moro Como generaliza? 3. Restrições sobre Hierarquias de Especialização/Generalização Definida por atributo ou usuário � Disjução: � Sub-classes podem ser disjuntas ou sobrepostas � Completude: A cobertura da super-classe em relação às sub- 17 � A cobertura da super-classe em relação às sub- classes pode ser total ou parcial � Restrições possíveis: � Disjunta/Total � Disjunta/Parcial � Sobreposta/Total � Sobreposta/Parcial UFMG DCC011 - profa. Mirella Moro d = disjunção Um Empregado é -Secretária OU -Técnico OU -Engenheiro 18 Figura 4.4 Notação do diagrama EER para uma especialização definida por atributo em TipoTrabalho. UFMG DCC011 - profa. Mirella Moro o = sobreposição Uma peça é -fabricada E/OU -fornecida 19 Figura 4.5 Notação de diagrama EER para uma especialização sobreposta (não disjunta). UFMG DCC011 - profa. Mirella Moro TOTAL TODO Empregado é Assalariado OU Horista 20 Figura 4.1 Notação de diagrama EER para representar as subclasses e a especialização. UFMG DCC011 - profa. Mirella Moro Restrições sobre Hierarquias de Especialização/Generalização � Hierarquia � Toda sub-classe participa como uma sub- classe em apenas um relacionamento classe/sub-classe 21 classe/sub-classe � Reticulado � lattice, herança múltipla, grade de especialização � Uma sub-classe pode participar em mais de um relacionamento classe/sub-classe UFMG DCC011 - profa. Mirella Moro 22 Figura 4.6 Um reticulado de especialização, com a subclasse GERENTE_ENGENHARIA compartilhada. UFMG DCC011 - profa. Mirella Moro Figura 4.7 Um reticulado de especialização, com herança múltipla, para um banco de dados UNIVERSIDADE. 23UFMG DCC011 - profa. Mirella Moro 4. Relacionamentos Ternários X 24 X UFMG DCC011 - profa. Mirella Moro Relacionamentos Ternários Representação usando Tipo de Entidade Fraca 25 Figura 4.11 Tipos de relacionamentos ternários. (a) O relacionamento FORNECE. (b) Três relacionamentos binários não equivalentes a FORNECE. (c) FORNECE representado como um tipo entidade fraca. UFMG DCC011 - profa. Mirella Moro Relacionamentos Ternários Outro exemplo de não equivalência 26 Figura 4.12 Outro exemplo de tipos relacionamento ternário versus binário. UFMG DCC011 - profa. Mirella Moro Aulas/aula06.pdf DCC011 Introdução a Banco de Dados -06Introdução a Banco de Dados -06 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Modelo Entidade-Relacionamento Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nível Processo de Projeto de Bancos de Dados UFMG DCC011 - profa. Mirella Moro 4 Independente de SGBD Modelo Entidade-Relacionamento � Entidades, atributos, relacionamentos � Atributos: simples, composto, multi- valorado � Atributos-chave UFMG DCC011 - profa. Mirella Moro 5 � Atributos-chave � Papéis � Relacionamentos � Cardinalidades (1:1, 1:N, N:M) � Participação (total, parcial) UFMG DCC011 - profa. Mirella Moro 6Figura 3.15 Diagrama ER para o esquema EMPRESA. UFMG DCC011 - profa. Mirella Moro 7 Figura 4.7 Um reticulado de especialização, com herança múltipla, para um banco de dados UNIVERSIDADE. IMPORTANTE � Modelo Conceitual � CONCEITOS, ABSTRAÇÕES � ENTIDADE, ATRIBUTO, RELACIONAMENTO � Piloto, equipe, país, circuito, corrida � Piloto representa País UFMG DCC011 - profa. Mirella Moro 9 � Piloto representa País � Equipe sede em País � SE país é uma entidade; Piloto e equipe possuem atributo País? � Mas a especificação diz!!!! ???? � N modelos conceituais para um cenário � Modelo tem APENAS o que está na especificação � Restrições, exceções, peculiaridades, viagem na maionese: OUTRO MODELO � Pecar por excesso x Pecar por falta Modelo Relacional (3rd ed: 7.1-7.2; 5th ed: 5.1-5.2) 1. Introdução 2. Conceitos do Modelo Relacional 3. Restrições de Integridade Básicas 4. Esquema do BD Relacional 5. Restrições de Integridade do Esquema 6. Exercício Requisitos de Dados Independente Esquema Conceitual Modelo de dados de alto nível Processo de Projeto de Bancos de Dados UFMG DCC011 - profa. Mirella Moro 11 Independente de SGBD SGBD Específico Esquema Lógico (Conceitual) em um modelo de dados de um SGBD específico 1. Introdução � O modelo relacional representa um banco de dados como um conjunto de relações � Informalmente uma relação = uma tabela de valores UFMG DCC011 - profa. Mirella Moro 12 uma relação = uma tabela de valores � cada linha representa uma coleção de dados relacionados � cada linha de uma tabela representa um “fato” que tipicamente corresponde a uma entidade ou relacionamento do mundo real 2. Conceitos do Modelo Relacional � Linhas de uma relação (tabela) = tuplas � Cabeçalho de cada coluna = atributo � Conjunto de valores que pode aparecer em cada coluna = domínio UFMG DCC011 - profa. Mirella Moro 13 Figura 7.1 Os atributos e as tuplas de uma relação ALUNO. Conceitos: Esquema de Relação � Descreve a relação � R(A1,A2, ...,An), onde: � R � Nome da relação � Ai � Nome de um atributo UFMG DCC011 - profa. Mirella Moro 14 � Ai � Nome de um atributo � n � Grau da relação � Cada Atributo Ai e’ o nome de um papel desempenhado por algum dominio D no Esquema da relação R � Exemplo: � Estudante (Nome, CPF, Telefone, Endereço, GPA) Conceitos: Relação Relação r(R) � Conjunto de tuplas: r = {t1,t2, ..., tm} � Cada tupla é uma lista ordenada de valores: t = <v1,v2, ..., vn> UFMG DCC011 - profa. Mirella Moro 15 t = <v1,v2, ..., vn> � Attributo Ai na tupla t: t[Ai] � r(R) ⊆⊆⊆⊆ dom(A1) x dom(A2) x ... x dom(An) � As tuplas de uma relação não são ordenadas (entre elas) Características de uma Relação UFMG DCC011 - profa. Mirella Moro 16 � Registros em um arquivo são ordenados de acordo com a posição em que são armazenados no disco Figura 7.2 A relação ALUNO da Figura 7.1 com uma ordenação diferente das tuplas. � Uma tupla é uma lista ordenada de valores � O valor de cada atributo em uma tupla é atômico � Atributos compostos e multivalorados não são permitidos Características de uma Relação UFMG DCC011 - profa. Mirella Moro 17 permitidos � O valor especial null é utilizado para representar valores não conhecidos ou não aplicáveis a uma determinada tupla � Um esquema de relação pode ser visto como uma declaração ou asserção � Esquema de relação = Predicado � Valores em cada tupla satisfazem o predicado 3. Restrições de Integridade Básicas Restrições de domínio � Especificam que o valor de cada atributo A de uma relação deve ser um valor atômico do domínio dom(A) UFMG DCC011 - profa. Mirella Moro 18 do domínio dom(A) Restrições de Integridade Restrições de chave � Por definição todas as tuplas são distintas � Um conjunto de atributos SK de um esquema de relação R tal que: para duas tuplas distintas quaisquer t1 e t2 de r(R) UFMG DCC011 - profa. Mirella Moro 19 para duas tuplas distintas quaisquer t1 e t2 de r(R) t1[SK] ≠ t2[SK] é uma super-chave de R � Super-chave default: todos os atributos � Uma chave de R é uma super-chave com a propriedade adicional de que nenhum de seus subconjuntos também seja uma super-chave de R � {SSN, Name, Age} = super-chave; {SSN} = chave Restrições de Integridade Restrições de chave � Um esquema de relação pode ter mais de uma chave � chaves candidatas � Dentre as chaves candidatas de um esquema de relação, uma delas é indicada como chave primária e as demais UFMG DCC011 - profa. Mirella Moro 20 uma delas é indicada como chave primária e as demais constituem as chaves alternativas Figura 7.4 A relação CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi. Restrições de Integridade Restrições em valores null � Especifica se a um atributo é permitido ter valores null � Exemplo: todo Aluno deve ter um nome válido, UFMG DCC011 - profa. Mirella Moro 21 � Exemplo: todo Aluno deve ter um nome válido, não-null 4. Esquema de um BD Relacional Um esquema de BD relacional S define: � um conjunto de esquemas de relação R = {R1,R2, ...,Rn}, e � um conjunto de restrições de integridade I UFMG DCC011 - profa. Mirella Moro 22 � um conjunto de restrições de integridade I S = (R,I) Esquema de um BD Relacional UFMG DCC011 - profa. Mirella Moro 23 Figura 7.5 Diagrama para o esquema do banco de dados relacional EMPRESA. 5. Restrições de Integridade do Esquema � Outras restrições além das restrições de domínio e de chave Restrição de integridade de entidade UFMG DCC011 - profa. Mirella Moro 24 Restrição de integridade de entidade � Nenhum componente de uma chave primária pode ser nulo Restrições de Integridade Restrição de integridade referencial � Usada para manter a consistência entre tuplas de duas relações � Uma tupla em uma relação que se refere UFMG DCC011 - profa. Mirella Moro 25 � Uma tupla em uma relação que se refere a outra relação deve referenciar uma tupla existente nesta outra relação � Aparecem devido aos relacionamentos entre entidades Restrições de Integridade Restrição de integridade referencial � Seja FK um conjunto de atributos de um esquema de relação R1 definido sobre o mesmo domínio dos atributos da chave UFMG DCC011 - profa. Mirella Moro 26 mesmo domínio dos atributos da chave primária PK de outro esquema R2. Então, para qualquer tupla t1 de R1: � t1[FK] = t2[PK], onde t2 é uma tupla de R2 ou � t1[FK] é nulo UFMG DCC011 - profa. Mirella Moro 27 Figura 7.7 Restrições de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA. Notação NomeTabelaPrincipal Chave Atributo1 … Atributon UFMG DCC011 - profa. Mirella Moro 28 NomeTabelaReferenciada ChaveAtributo1 … Atributon � A restrição de integridade referencial pode ser expressa pela notação R1[FK] � R2[PK], onde PK é a chave primária de R2 e FK é a chave Restrições de Integridade UFMG DCC011 - profa. Mirella Moro 29 onde PK é a chave primária de R2 e FK é a chave estrangeira de R1 � Exemplos: EMPLOYEE[DNO] � DEPARTMENT[DNUMBER] WORKS_ON[ESSN] � EMPLOYEE[SSN] WORKS_ON[PNO] � PROJECT[PNUMBER] Revisão � Uma relação = uma tabela de valores � Tuplas, atributos, domínios � Restrições de domínio � Restrições de chave � chave e super-chave; chave candidata, chave UFMG DCC011 - profa. Mirella Moro 30 � chave e super-chave; chave candidata, chave primária, chave alternativa � Restrições de valores null � Esquema = relações + restrições integridade � Restrição de integridade de entidade � chave não nulo � Restrições de integridade referencial � chave estrangeira Exercício � Reserva de passagem (2o exercício da aula 5) � EM DUPLA � Adicionar chaves primárias e estrangeiras UFMG DCC011 - profa. Mirella Moro 33 NomeT1 Chave Atributo1 … NomeRel NomeT2 ChaveAtributo1 … Atributon NomeT2 (chave2, atrib1, …, atribN) NomeT1 (chave1, atrib1, … , nomeRel) nomeRel referencia NomeT2 OU nomeRel referencia NomeT2:chave2 Aulas/aula07.pdf DCC011 Introdução a Banco de Dados -07Introdução a Banco de Dados -07 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa � Introdução � Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. � Modelos de dados e linguagens UFMG DCC011 - profa. Mirella Moro 2 � Modelos de dados e linguagens � Modelo entidade-relacionamento (ER), modelo relacional, álgebra relacional, SQL. � Projeto de bancos de dados � Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. � Novas Tecnologias e Aplicações de Banco de Dados Modelo Relacional 1. Revisão 2. Instância de um BD Relacional 3. Operações sobre Relações 4. Violações de Restrições 1. Revisão � Uma relação = uma tabela de valores � Tuplas, atributos, domínios � Esquema = relações + restrições integridade � Restrições de domínio � Restrições de chave (candidata, primária, alternativa) � Restrições de valores null UFMG DCC011 - profa. Mirella Moro 4 � Restrições de valores null � Restrição de integridade de entidade (chave não nula) � Restrições de integridade referencial (chave estrangeira) NomeTabelaPrincipal Chave Atributo1 … Atributon NomeTabelaReferenciada ChaveAtributo1 … Atributon 2. Instância de um BD Relacional UFMG DCC011 - profa. Mirella Moro 10 Figura 7.7 Restrições de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA. Instância de um BD Relacional UFMG DCC011 - profa. Mirella Moro 11 1 4 5 5 5 ���� ���� ���� Instância de um BD Relacional UFMG DCC011 - profa. Mirella Moro 12 Figura 7.6 Um estado de um banco de dados possível para o esquema do banco de dados relacional EMPRESA. Instância de um BD Relacional UFMG DCC011 - profa. Mirella Moro 13 Figura 7.6 Um estado de um banco de dados possível para o esquema do banco de dados relacional EMPRESA. 3. Operações sobre Relações � As operações sobre um BD relacional podem ser classificadas em: � Operações de recuperação (consulta) � Operações de atualização UFMG DCC011 - profa. Mirella Moro 14 � Operações de atualização (sobre tuplas): � Inserção (insert) � Remoção (delete) � Modificação (update) Operações sobre Relações � Inserção (insert) � Adiciona uma nova tupla (ou várias) em uma relação � Remoção (delete) UFMG DCC011 - profa. Mirella Moro 15 � Remoção (delete) � Remove uma tupla da relação � Modificação (update) � Altera os dados de uma tupla Em qualquer operação, a integridade da base de dados relacional deve ser mantida 4. Violação de Restrições � Restrições de integridade não podem ser violadas!!! Inserção � Restrição de Domínio: valor fora do domínio UFMG DCC011 - profa. Mirella Moro 16 � Restrição de Domínio: valor fora do domínio � Restrição de Chave: valor já existe � Restrição de integridade de entidade: se chave for null � Restrição de integridade referencial: se chave estrangeira referencia tupla inexistente � Ação default: rejeitar inserção (com explicação) Exemplos Empregado Nome IM Sobrenome CPF DataNasc Endereço Salário Supervisor Depto Departamento NomeD NumeroDepCPFGer DataInicioGer Inserir <‘Mirella’, ‘M’, ‘Moro’, 1234567890, ‘1960-04-05’, ‘6347 Whatever’, 28000, nulo, 4> em Empregado UFMG DCC011 - profa. Mirella Moro 17 Inserir <‘Cecilia’, ‘F’, ‘Kolonsky’, nulo, ‘1960-04-05’, ‘6347 Whatever’, 28000, 12312312345, 4> em Empregado Inserir <‘Alicia’, ‘J’, ‘Zelaya’, 1234567890, ‘1960-04-05’, ‘9281 Whatever’, 28000, 1234567890, 6> em Empregado ‘6347 Whatever’, 28000, nulo, 4> em Empregado Violação de Restrições Remoção � Tupla excluída é referenciada por chaves estrangeiras � Ação default: bloqueia/rejeitar a remoção (com explicação) UFMG DCC011 - profa. Mirella Moro 18 (com explicação) � OUTRAS OPÇÕES???? � Propagar remoção de tuplas que violem uma restrição de integridade referencial – Efeito cascata � Modificar o valor da chave estrangeira para nulo Violação de Restrições Modificação � Modificar o valor de um atributo que não é chave primária ou estrangeira não causa problemas (se o valor for do domínio, e, se for null, que este valor seja permitido) UFMG DCC011 - profa. Mirella Moro 19 null, que este valor seja permitido) � Modificar a chave primaria é igual a excluir uma tupla e inserir outra � Modificar chave estrangeira: SGBD deve verificar se novo valor do atributo referencia tupla existente Opções de Remoção da RIR � A cada RIR R1[FK] � R2[PK] é possível associar uma opção de remoção que especifica como a remoção de uma tupla de R2 é executada em relação a R1 � As opções de remoção possíveis são: UFMG DCC011 - profa. Mirella Moro 20 � bloqueio � propagação � substituição por nulos � Notação: R1[FK] � R2[PK], onde op ∈ {b, p, n} op UFMG DCC011 - profa. Mirella Moro 21 EXERCÍCIO: adicionar as opções de remoção às chaves estrangeiras • bloqueio • propagação • substituição por nulos n p p bb b b UFMG DCC011 - profa. Mirella Moro 22 Restrições de integridade referencial com opções de remoção p b • bloqueio • propagação • substituição por nulos Aulas/aula10.pdf DCC011 Introdução a Banco de Dados -10Introdução a Banco de Dados -10 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa � Introdução � Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. � Modelos de dados e linguagens DCC011 - profa. Mirella 2 � Modelos de dados e linguagens � Modelo entidade-relacionamento (ER), modelo relacional, álgebra relacional, SQL. � Projeto de bancos de dados � Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. � Novas Tecnologias e Aplicações de Banco de Dados Revisão DCC011 - profa. Mirella 3 1.Projeto de Banco de Dados 2.Modelo Entidade-Relacionamento 3.Modelo Relacional 1. Projeto de Banco de Dados Visão Externa1 Visão Externa2 Modelo Conceitual requisitosrequisitos DCC011 - profa. Mirella 4 Modelo Lógico Modelo Físico Esquema Conceitual Esquema Lógico Esquema Físico INDEPENDENTE de SGBD DEPENDENTE de SGBD 2. Modelo Entidade- Relacionamento DCC011 - profa. Mirella 5 Figura 4.7 Um reticulado de especialização, com herança múltipla, para um banco de dados UNIVERSIDADE. IMPORTANTE Modelo ER � Modelo Conceitual � CONCEITOS, ABSTRAÇÕES � ENTIDADE, ATRIBUTO, RELACIONAMENTO � Piloto, equipe, país, circuito, corrida � Piloto representa País DCC011 - profa. Mirella 6 � Piloto representa País � Equipe sede em País � SE país é uma entidade; Piloto e equipe possuem atributo País? � Mas a especificação diz!!!! ???? � N modelos conceituais para um cenário � Modelo tem APENAS o que está na especificação � Restrições, exceções, peculiaridades, viagem na maionese: OUTRO MODELO 3. Modelo Relacional � Linhas de uma relação (tabela) = tuplas � Cabeçalho de cada coluna = atributo � Conjunto de valores que pode aparecer em cada coluna = domínio DCC011 - profa. Mirella 7 Figura 7.1 Os atributos e as tuplas de uma relação ALUNO. Álgebra Relacional 1. Introdução 2. Seleção 3. Projeção 4. Sequencia 5. Conjunto 6. Produto Cartesiano 7. Junções 8DCC011 - profa. Mirella Introdução � Linguagens de consultas: Permitem manipulação e recuperação de dados de um BD � O modelo relacional suporta LCs simples e poderosas: � Forte fundamentação teórica baseada em lógica DCC011 - profa. Mirella 9 � Forte fundamentação teórica baseada em lógica � Permite otimizações � Ling. de consulta ≠ ling. de programação � LCs não tem a intenção de suportar cálculos complexos � LCs suportam acesso fácil e eficiente a grandes conjuntos de dados Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) LCs relacionais formais Duas LCs matemáticas formam a base para as LCs “reais” (p.ex., SQL), e p/ implementação: 1. Álgebra relacional: Predominantemente operacional, útil para representar planos de DCC011 - profa. Mirella 10 operacional, útil para representar planos de execução 2. Cálculo Relacional : Permite usuários descreverm o que querem, ao invés de como querem (não operacional, declarativa) Entender álgebra e cálculo é uma chave para entender SQL e processamento de consultas. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) Consultas � Uma consulta é aplicada para instâncias de relação, e o resultado de uma consulta é também uma instância de relação � Esquemas de consumo relações para uma DCC011 - profa. Mirella 11 � Esquemas de consumo relações para uma consulta são fixadas (mas consultas rodarão independente de exemplos!) � O esquema para o resultado de uma propensa consulta é também fixada! Determinada por definição de construção de linguagem de consulta Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) Álgebra Relacional: Resumo � Dadas duas relações R1 e R2 � Operações Básicas � Selection (σ) Seleciona em sub-conjunto de fileiras da relação � Projection (pi) Deleta colunas indesejadas da relação � Cross-product (××××) Permite-nos combinar R1 e R2 DCC011 - profa. Mirella 12 � Cross-product (××××) Permite-nos combinar R1 e R2 � Set-difference () Tuplas em R1, mas não em R2 � Union (∪∪∪∪) Tuplas em R1 e em R2 � Operações Adicionais: � Intersecção, junção, divisão, renomear Desde que cada operação retorna uma relação, operações podem ser compostas ! Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) Operação de Seleção σσσσ(DNO = 4 AND SALARY>25000) OR (DNO=5) (EMPLOYEE) DCC011 - profa. Mirella 13 Base de Dados: Operação de Seleção ????? DCC011 - profa. Mirella 14 Operação de Projeção � Projeta as tuplas de uma relação sobre um determinado conjunto de atributos � Notação: pi<atributos> (<nome da relação>) DCC011 - profa. Mirella 15 pi<atributos> (<nome da relação>) � Exemplos: � piLNAME,FNAME,SALARY (EMPLOYEE) � piSEX,SALARY (EMPLOYEE) Operação de Projeção piLNAME,FNAME,SALARY (EMPLOYEE) piSEX,SALARY (EMPLOYEE) DCC011 - profa. Mirella 16 Operação de Projeção Base de Dados: ??? DCC011 - profa. Mirella 17 ??? Sequência de Operações � Várias operações podem ser combinadas para formar uma expressão da álgebra relacional � piFNAME,LNAME,SALARY (σσσσDNO = 5 (EMPLOYEE)) DCC011 - profa. Mirella 18 Sequência de Operações � Pode-se especificar relações temporárias e alterar o nome dos atributos da relação resultante: � TEMP � σσσσDNO=5 (EMPLOYEE) � R(FIRSTNAME, LASTNAME, SALARY) � piFNAME,LNAME,SALARY (TEMP) DCC011 - profa. Mirella 19 R Sequência de Operações Base de Dados: DCC011 - profa. Mirella 20 Operações de Conjunto � União: Efetua a união de duas relações compatíveis � Notação: R ∪ S � Diferença: Efetua a diferença entre duas DCC011 - profa. Mirella 21 � Diferença: Efetua a diferença entre duas relações compatíveis � Notação: R − S � Interseção: Efetua a interseção de duas relações compatíveis � Notação: R ∩ S Operações de Conjunto � Duas relações R(A1,A2,..., An) e S(B1,B2,..., Bn) são (união) compatíveis quando tiverem o mesmo grau e dom(Ai) = dom(Bi) � Exemplo: � RESULT1 � piSSN ( σσσσDNO = 5 (EMPLOYEE)) DCC011 - profa. Mirella 22 � RESULT1 � piSSN ( σσσσDNO = 5 (EMPLOYEE)) � RESULT2(SSN) � piSUPERSSN (σσσσDNO = 5 (EMPLOYEE)) � RESULT � RESULT1 ∪ RESULT2 Figura 6.3 Resultado da operação UNIÃO, RESULTADO ¬ RESULTADO1 U RESULTADO2. Operações de Conjunto Duas relações compatíveis STUDENT ∪ INSTRUCTOR STUDENT ∩ INSTRUCTOR DCC011 - profa. Mirella 23 STUDENT - INSTRUCTOR INSTRUCTOR - STUDENT STUDENT ∩ INSTRUCTOR Figura 6.4 As operações de conjunto UNIÃO, INTERSEÇÃO e SUBTRAÇÃO. (a) Duas relações união compatíveis. (b) ALUNO U INSTRUTOR. (c) ALUNO ∩ INSTRUTOR. (d) ALUNO INSTRUTOR. (e) INSTRUTOR ALUNO. Operações de Conjunto Base de Dados: DCC011 - profa. Mirella 24 Operações de Conjunto Produto Cartesiano � Cada linha de S1 é combinada com cada linha de R1. � Esquema resultante tem um campo por campo S1 e R1, com nomes campos DCC011 - profa. Mirella 25 campo S1 e R1, com nomes campos ‘herdados’ se possível. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) Operações de Conjunto Produto Cartesiano � Conflito: Ambos S1 e R1 têm um campo chamado sid. Base de Dados: DCC011 - profa. Mirella 26 Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) Operações de Conjunto � Produto Cartesiano: combina as tuplas de duas relações. � Notação: R × S � Exemplo: FEMALE_EMPS� σσσσ (EMPLOYEE) DCC011 - profa. Mirella 27 FEMALE_EMPS� σσσσSEX = ‘F’ (EMPLOYEE) EMPNAMES � piFNAME, LNAME, SSN (FEMALE_EMPS) Produto Cartesiano EMP_DEPENDENTS � EMPNAMES × DEPENDENT DCC011 - profa. Mirella 28 ACTUAL_DEPENDENTS � σσσσSSN = ESSN (EMP_DEPENDENTS) RESULT � pipipipiFNAME,LNAME,DEPENDENT_NAME (ACTUAL_DEPENDENTS) Operação de Junção � Combina as tuplas de duas relações que satisfazem uma determinada condição � Permite processar relacionamentos entre relações � Notação: R <cond> S DCC011 - profa. Mirella 29 � Notação: R <cond> S � A condição de junção é geralmente da forma <cond1> AND <cond2> AND ... AND <condn>, onde <condi> é uma expressão A θθθθ B, sendo A um atributo de R, B um atributo de S e θ um dos operadores {=,<, ≤,>, ≥, ≠} Operação de Junção Base de Dados: DCC011 - profa. Mirella 30 Operação de Junção � Exemplo: � DEPT_MGR� DEPARTMENT MGRSSN=SSN EMPLOYEE � Uma operação de junção que envolva apenas condições de DCC011 - profa. Mirella 31 � Uma operação de junção que envolva apenas condições de igualdade é chamada de eqüi-junção � Uma junção natural é uma eqüi-junção na qual o segundo atributo de cada condição de igualdade é eliminado da relação resultante (uma junção natural é geralmente definida sobre atributos de mesmo nome) � Notação: R S Exemplos de Junção Natural � DEPT(DNAME,DNUM,MGRSSN,MGRSTARTDATE) � DEPARTMENT PROJ_DEPT � PROJECT DEPT DCC011 - profa. Mirella 32 � DEPT_LOCS � DEPARTMENT DEPT_LOCATIONS Exemplos de Junção Natural Base de Dados: DCC011 - profa. Mirella 33 Exercícios Autor (CodAutor, NomeAutor, CodEndereco, CodInst) (CodEndereco) referencia Endereco (CodInst) referencia Instituicao Artigo (CodArtigo, Titulo, AnoPublicacao) AutorArtigo (CodAutor, CodArtigo) (CodAutor) referencia Autor (CodArtigo) referencia Artigo Instituicao (CodInst, NomeInst, CodEndereco) DCC011 - profa. Mirella 34 Instituicao (CodInst, NomeInst, CodEndereco) (CodEndereco) referencia Endereco Endereco (CodEndereco, Rua, Numero, Bairro, Cidade, Estado, Pais, Cep) 1. Obter os títulos dos artigos seguidos do nome seus autores. 2. Obter os nomes dos autores que publicaram artigos em 1998 e 1999. Aulas/aula11.pdf DCC011 Introdução a Banco de Dados -11Introdução a Banco de Dados -11 Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa � Introdução � Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. � Modelos de dados e linguagens DCC011 - profa. Mirella 2 � Modelos de dados e linguagens � Modelo entidade-relacionamento (ER), modelo relacional, álgebra relacional, SQL. � Projeto de bancos de dados � Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. � Novas Tecnologias e Aplicações de Banco de Dados Álgebra Relacional: Resumo � Dadas duas relações R1 e R2 � Operações Básicas � Selection (σ) Seleciona em sub-conjunto de linhas da relação � Projection (pi) Deleta colunas indesejadas da relação � Cross-product (××××) Permite-nos combinar R1 e R2 DCC011 - profa. Mirella 3 � Cross-product (××××) Permite-nos combinar R1 e R2 � Set-difference () Tuplas em R1, mas não em R2 � Union (∪∪∪∪) Tuplas em R1 e em R2 � Operações Adicionais: � Intersecção, junção, divisão, renomear Desde que cada operação retorna uma relação, operações podem ser compostas ! Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) σ mantém as colunas Álgebra Relacional: Seleção Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 DCC011 - profa. Mirella 4 Sue’s Miller 3.00 JoeMenu � σbar=“Joe’s”(Sells): bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Adaptado de Jeff Ullman – CS145, aut07 σ seleciona linhas de acordo com condição Álgebra Relacional: Projeção Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 MUITO MUITO MUITO MUITO IMPORTANTEIMPORTANTEIMPORTANTEIMPORTANTE ÁLGEBRA ÁLGEBRA ÁLGEBRA ÁLGEBRA ELIMINAELIMINAELIMINAELIMINA DUPLICATASDUPLICATASDUPLICATASDUPLICATAS pi mantém colunas conforme definido DCC011 - profa. Mirella 5 Adaptado de Jeff Ullman – CS145, aut07 Sue’s Miller 3.00 Prices �pibeer,price (Sells): beer price Bud 2.50 Miller 2.75 Miller 3.00 Álgebra Relacional: Prod. Cartesiano R1( A, B ) 1 2 3 4 R2( B, C ) 5 6 R3( A, R1.B, R2.B, C ) 1 2 5 6 1 2 7 8 1 2 9 10 3 4 5 6 R3 � R1 Χ R2 DCC011 - profa. Mirella 6 Adaptado de Jeff Ullman – CS145, aut07 5 6 7 8 9 10 3 4 5 6 3 4 7 8 3 4 9 10 PRODUTO CARTESIANO: funciona exatamente igual ao produto cartesiano de conjuntos da matemática PORÉM cada elemento é uma LINHA INTEIRA Número de colunas = #colunas em R1 x # colunas em R2 � sempre Se tiver duas colunas com nome igual (B) o resultado fica NomeTabela.NomeColuna Junção � Operação criada para simplificar o processo de produto cartesiano seguido de seleção � Junção = operador + condição de junção: � Junção = operador + condição de junção: Tabela1 �������� coluna1 = coluna2 Tabela2 Tabela1 �������� coluna1 ≠ coluna2 Tabela2 Tabela1 �������� coluna1 ≥ coluna2 Tabela2 � O resultado são todas as colunas + linhas que satisfazem à condição de junção DCC011 - profa. Mirella 7 Álgebra Relacional: Junção Sells( bar, beer, price ) Bars( name, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 DCC011 - profa. Mirella 8 Adaptado de Jeff Ullman – CS145, aut07 BarInfo � Sells ����Sells.bar = Bars.name Bars BarInfo( bar, beer, price, name, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Joe’s Maple St. Sue’s Bud 2.50 Sue’s River Rd. Sue’s Coors 3.00 Sue’s River Rd. Junção Natural � É um tipo ESPECIAL de junção � A condição de junção não é especificada Tabela1 �������� Tabela2 � Nesse caso, a condição de junção é default :� Nesse caso, a condição de junção é default : igualidade das colunas com mesmo nome � Resultado = todas as colunas MENOS as de mesmo nome (participaram na condição default) DCC011 - profa. Mirella 9 Álgebra Relacional: Junção Natural Sells( bar, beer, price ) Bars( bar, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 BarInfo := Sells � Bars DCC011 - profa. Mirella 10 Adaptado de Jeff Ullman – CS145, aut07 BarInfo := Sells � Bars Note: Bars.name agora é Bars.bar para fazer junção natural BarInfo( bar, beer, price, addr ) Joe’s Bud 2.50 Maple St. Joe’s Milller 2.75 Maple St. Sue’s Bud 2.50 River Rd. Sue’s Coors 3.00 River Rd. Outros Exemplos � Sailors (sid, sname, rating, age) � Reserves (sid, bid, day) � Boats (bid, bname, color) 1. Encontre nomes dos sailors que reservaram pelo menos um barco 2. Encontre os nomes dos sailors que reservaram o barco # 103 DCC011 - profa. Mirella 11 # 103 3. Encontre nomes dos sailors que reservaram um barco vermelho 4. Encontre o sid dos sailors com idade acima de 20 anos que não reservaram um barco vermelho 5. Encontre nomes dos sailors que reservaram um barco vermelho ou verde 6. Encontre sailors que reservaram
Compartilhar