Programa • Introdução t oduçã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. DCC011: Introdução a Banco de Dados • Modelos de dados e linguagens • Modelo Modelo entidade‐relacionamento (ER), modelo realcional, álgebra entidade‐relacionamento (ER) modelo realcional álgebra relacional, SQL. Mirella M. Moro • Projeto de bancos de dados Departamento de Ciência da Computação • Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. Universidade Federal de Minas Gerais [email protected] • Novas Tecnologias e Aplicações de Banco de Dados g p ç • Bancos de dados orientados a objetos e objeto‐relacionais, dados semi‐ estruturados e XML. UFMG DCC011 ‐ profa. Mirella M. Moro 2 Sumário • Introdução ç • Exemplo, Características, Vantagens, Implicações • Quando não utilizar um SGBD Introdução • Conceitos e Arquitetura do SBD • Modelos de Dados, Esquemas e Instâncias M d l d D d E I tâ i • Categorias de Modelos de Dados Arquitetura de Três Esquemas e Independência 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 Cl ifi ã d SGBD UFMG DCC011 ‐ profa. Mirella M. Moro 1. 2. 3. 4. 5. 6. 3 1. O que é um Banco de Dados? Sistema de Gerência de Banco de Dados Sistema de Gerência de Banco de Dados • [Elmasri & Navathe, 2000] [El i&N h 2000] • Um sistema de gerência de banco de dados (SGBD) é U i d ê i d b d d d (SGBD) é um conjunto de programas que permite criar e manter um banco de dados um banco de dados • Um banco de dados é uma coleção de dados relacionados • Representando algum aspecto do mundo real (mini‐mundo ou universo de discurso) • Logicamente coerente, com algum significado Logicamente coerente com algum significado • Projetado, construído e gerado (“povoado”) para uma aplicação específica UFMG DCC011 ‐ profa. Mirella M. Moro Conceitos básicos Exemplo Características Vantagens Implicações Quando não utilizar um SGBD • BD + SGBD = sistema de banco de dados 5 UFMG DCC011 ‐ profa. Mirella M. Moro 6 Usuários/Programadores Consultas/Programas (M t D d ) (Meta-Dados) • Mini‐mundo: parte de uma universidade Mi i d d i id d • Alguns integrantes Exemplos de SGBDs???? • Alunos • Disciplinas • Departamentos D t t Oracle IBM DB2 My SQL PostgreSQL SGBD Catálogo 2. Exemplo de um Banco de Dados • Alguns relacionamentos • Disciplinas Di i li são oferecidas por Departamentos ã f id D t t • Alunos estão matriculados em Disciplinas Banco de Dados D d Si t Sistema d de Banco B d de Dados D d UFMG DCC011 ‐ profa. Mirella M. Moro 7 Exemplo de um Banco de Dados UFMG DCC011 ‐ profa. Mirella M. Moro UFMG DCC011 ‐ profa. Mirella M. Moro 8 Exemplo de um Banco de Dados 9 3. Características da Abordagem de BD g UFMG DCC011 ‐ profa. Mirella M. Moro 10 4. Vantagens da Utilização de um SGBD g ç • Controle de redundância dos dados • Auto‐descrição dos dados • Compartilhamento informações replicadas • Manutenção de restrições de integridade 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 ã d l i l entre os dados • Recuperação de falhas f • Isolamento entre programas e dados: abstração de Isolamento entre programas e dados: abstração de dados • Suporte a múltiplas visões dos dados úl l d d d p p • Compartilhamento de dados e processa‐mento de transações concorrentes UFMG DCC011 ‐ profa. Mirella M. Moro 11 UFMG DCC011 ‐ profa. Mirella M. Moro 12 5. Implicações da Abordagem de BD p ç g 6. Quando não Utilizar um SGBD • Adoção/imposição de padrões ç / p ç p • Aplicações simples e bem definidas onde não se p ç p espera mudanças • Aplicações de tempo Aplicações de tempo‐real real • Aplicações onde não é necessário acesso multi‐ usuário • Motivos: • Redução do tempo de desenvolvimento das aplicações • Flexibilidade • Atualidade da informação disponível • Investimento inicial alto 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.) • Economia de escala E i d l UFMG DCC011 ‐ profa. Mirella M. Moro 13 14 UFMG DCC011 ‐ profa. Mirella M. Moro 1. Modelo de Dados, Esquema e Instância Conceitos e Arquitetura do Conceitos e Arquitetura do SBD M d l Modelo de Dados 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 4. Linguagens e Interfaces 5. Módulos de Componentes do SGBD e Utilitários 6. Classificação dos SGBDs Esquema Regras para estruturação dos dados Instância Regras para verificação das instâncias UFMG DCC011 ‐ profa. Mirella M. Moro Modelo de Dados, Esquema e Instância q 16 Modelo de Dados, Esquema e Instância q • Modelo de dados: Conjunto de conceitos j descrevem a estrutura de um BD • Abstração de dados • Estrutura = tipos de dados + relacionamentos + restrições (+operações recuperação e atualização) • Esquema: Descrição (textual ou gráfica) da ( l áf ) d estrutura de um BD de acordo com um determinado modelo de dados determinado modelo de dados • Instância: Conjunto de dados armazenados em um BD em um determinado instante de tempo BD em um determinado instante de tempo Esquema do banco de dados de exemplo UFMG DCC011 ‐ profa. Mirella M. Moro 17 UFMG DCC011 ‐ profa. Mirella M. Moro 18 Modelo de Dados, Esquema e Instância Modelo de Dados Esquema e Instância Modelo de Dados, Esquema e Instância • Esquema do BD q • 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 d f • Validade parcialmente guarantida pelo SGBD UFMG DCC011 ‐ profa. Mirella M. Moro 19 UFMG DCC011 ‐ profa. Mirella M. Moro 2. Categorias de Modelo de Dados 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 mais próxima da percepção dos usuários • Independente de aspectos de implementação • Conceitos: entidades, atributos, relacionamentos Conceitos: entidades atributos relacionamentos • Exemplos: MODELOS REPRESENTACIONAIS (lógicos) ( g ) • Descrevem a estrutura de um BD da forma como será manipulado através de SGBD será manipulado através de SGBD • Mais dependente das estruturas físicas de armazenamento de dados armazenamento de dados • Exemplos: • Modelo relacional Modelo relacional • Modelo de rede (CODASYL) • Modelo hierárquico • Modelo entidade‐relacionamento (ER) Modelo entidade relacionamento (ER) • Modelo funcional Modelo orientado a objetos (OO) • Modelo orientado a objetos (OO) UFMG DCC011 ‐ profa. Mirella M. Moro 20 21 UFMG DCC011 ‐ profa. Mirella M. Moro Categorias de Modelo de Dados 3. Arquitetura de um Sistema de BD q MODELOS FÍSICOS • Descrevem como os dados são fisicamente armazenados • Conceitos: formatos dos registros, ordenamento dos registros, caminhos de acesso (eficiência) dos registros, caminhos de acesso (eficiência) Características do enfoque de BD q 22 • Isolamento de programas e dados • Suporte de visões múltiplas de usuários • 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 úl l õ UFMG DCC011 ‐ profa. Mirella M. Moro 23 UFMG DCC011 ‐ profa. Mirella M. Moro 24 Arquitetura de um Sistema de BD Arquitetura de um Sistema de BD Componentes p 1. Esquema interno • Descreve armazenamento físico Descreve armazenamento físico 2. Esquema conceitual • • Descreve entidades, tipos de dados, relacionamentos, 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 25 UFMG DCC011 ‐ profa. Mirella M. Moro Esquema conceitual q • 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) EXTERNO (Ling. Pascal) EXTERNO (Ling. Cl) Funcionario u c o a o = Record eco d nome: string(30); salario: real; End; Participante p = struct { char[30] Nome; int Departamento; } CONCEITUAL Empregado NOME SALARIO DEPARTAMENTO SEXO Esquema Físico í • Relações guardadas como arquivos desordenados • Índices na primeira colunas de estudantes Í di i i l d t d t Esquema externo (Visão): CHARACTER (30) NUMERIC (5) NUMERIC (2) CHARACTER (1) INTERNO • Info_Curso(cid:string, horário:string) I f C ( id t i h ái ti ) RegistroEmpregado LENGTH=50 LENGTH 50 NOME TYPE= BYTE(30) SAL TYPE=FULLWORD DEP TYPE=WORD SEXO TYPE=BYTE(1) 27 UFMG DCC011 ‐ profa. Mirella M. Moro UFMG DCC011 ‐ profa. Mirella M. Moro 28 Independência de Dados Altera um nível • Capacidade de se alterar o esquema em um p q determinado nível sem alterar o esquema (ou esquemas) do nível imediatamente mais alto VANTAGEM: Imunidade dos programas em relação a mudanças • Imunidade dos programas em relação a mudanças na estrutura do banco de dados • Um dos maiores benefícios de usar SGBD Um dos maiores benefícios de usar SGBD Esquema Conceitual Esquema Físico 26 Arquitetura de um Sistema de BD p exemplo 2 Arquitetura de um Sistema de BD exemplo 1 exemplo 1 Visão Externa UFMG DCC011 ‐ profa. Mirella M. Moro Altera nível vizinho Dependência de Dados Independência de Dados UFMG DCC011 ‐ profa. Mirella M. Moro 29 UFMG DCC011 ‐ profa. Mirella M. Moro 30 Arquitetura de um Sistema de BD q Independência de Dados Independência de dados lógica p g • Capacidade de alterar o esquema conceitual sem alterar esquema externo ou aplicações alterar esquema externo ou aplicações Nível Externo • Ex. Expansão ou redução Esquema Externo n Independência lógica ó Independência de dados física • Capacidade de mudar o esquema interno sem Capacidade de mudar o esquema interno sem mudar o esquema conceitual (ou externo) Independência fí i física 31 • Linguagem de definição de dados (DDL) g g ç ( ) • Baseadas em menus • Baseadas em formulários • Gráficas (GUI), diagramas Gráficas (GUI) diagramas • Baseadas em linguagem natural • Para leigos P l i • Para DBAs • Recuperação, inserção, remoção, modificação • Linguagem de consulta Linguagem de consulta • DML de alto nível usada em modo “stand‐alone” • Exemplo: SQL Exemplo: SQL UFMG DCC011 ‐ profa. Mirella M. Moro Visão do armazenamento físico UFMG DCC011 ‐ profa. Mirella M. Moro Interfaces • Linguagem de manipulação de dados (DML) Linguagem de manipulação de dados (DML) Visão comunitária Nível Interno Esquema Interno 4. Linguagens • Usada para definir esquemas Visão de cada usuário Nível Conceitual Esquema Conceitual • Ex. Reorganização de arquivos para melhorar Ex Reorganização de arquivos para melhorar desempenho UFMG DCC011 ‐ profa. Mirella M. Moro Esquema Externo 2 Esquema Externo 1 33 UFMG DCC011 ‐ profa. Mirella M. Moro 32 34 5. Módulos de Componentes do SGBD Utilitários • Carga (loading) g ( g) • Arquivos dados Banco de Dados • Cópia de segurança (backup) Cópia de segurança (backup) • Para restaurar em caso de falhas • (Re (Re‐)Organização )Organização de arquivos de arquivos • Melhorar o desempenho • Monitoramento do desempenho Monitoramento do desempenho • Fornece estatísticas para o DBA: informações sobre desempenho reorganização UFMG DCC011 ‐ profa. Mirella M. Moro 35 UFMG DCC011 ‐ profa. Mirella M. Moro 36 6. Classificação dos SGBDs Exemplo de um BD Relacional • Quanto ao modelo de dados adotado Q t d l d d d d t d Empregado • De rede Hierárquicos • Hierárquicos • Relacionais • Orientados a objetos • Objeto‐relacionais b l NumEmp NomeEmp Salário 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 • Quanto ao número de usuários suportados • Mono‐usuários Mono usuários • Multi‐usuários Departamento • Quanto à localização dos dados Quanto à localização dos dados • Centralizados • Distribuídos 37 UFMG DCC011 ‐ profa. Mirella M. Moro Exemplo de um BD de Rede Dept NumDept NomeDept 21 Pessoal Ramal 142 25 Financeiro 143 28 Técnico 144 38 UFMG DCC011 ‐ profa. Mirella M. Moro Exemplo de um BD Hierárquico E Empregado d Departamento 21 Pessoal 142 032 J Silva 380 074 M Reis 400 089 C Melo 520 092 R Silva 480 Departamento 21 Financeiro 143 142 25 Financeiro 380 074 143 28 Técnico 144 089 C Melo 520 Empregado 032 25 Pessoal 112 J Silva R Pinto 390 092 M Reis R Silva 400 480 121 130 28 Técnico 144 112 R Pinto 121 V Simão 130 J Neves 905 J Neves 640 390 905 640 39 UFMG DCC011 ‐ profa. Mirella M. Moro REVISÃO UFMG DCC011 ‐ profa. Mirella M. Moro 40 EXERCÍCIO EM DUPLA • BD, SGBD, SBD , , Modelo de Dados V Simão Regras para estruturação dos dados Esquema Regras para verificação das instâncias • ELMASRI & NAVATHE, CAP 2, exercício: , , • 2.11 – Escolha uma aplicação de BD com a qual você esteja j q p p 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 representar no esquema? Imagine diversos usuários para seu BD e projete uma visão para um usuário. p ç • OU: utilize a representação em texto Instância • Modelos: conceitual, lógico, físico M d l i l ló i fí i • Independência de dados • DDL, DML • Modelo: tipo, nro usuários, localização p , , ç UFMG DCC011 ‐ profa. Mirella M. Moro 41 UFMG DCC011 ‐ profa. Mirella M. Moro 42 Exercício 2.11 – Escolha uma aplicação de BD com a qual você esteja familiarizado. (a) Projete um esquema de BD para aquela aplicação. (b) Q Que tipos de informações e restrições adicionais você gostaria de p ç ç g representar no esquema? (c) Imagine diversos usuários para seu BD e projete uma visão para um usuário. Exercício 2.11 – Representação em texto ENTREGA INÍCIO DA PRÓXIMA AULA FIGURA 2.1 ALUNO: nome, numero, turma, curso p CURSO: nome,, numero,, creditos,, depto PRE-REQ: curso, prereq DISCIPLINA: id, curso, sem, ano, prof NOTAS: aluno, disc, nota FIGURA 2 2.1 1 FIGURA 1.2 – primeira tabela UFMG DCC011 ‐ profa. Mirella M. Moro 43 FIGURA 1.2 – primeira tabela UFMG DCC011 ‐ profa. Mirella M. Moro 44