Banco de Dados I Introdução Conceitos Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Conceitos Fundamentais de Banco de Dados; Características de um SGBD; Arquitetura de SGBD; Introdução ao Modelo; Entidade-Relacionamento (MER); Modelo Entidade-Relacionamento; Projeto Conceitual: Diagrama Entidade-Relacionamento (DER); Introdução aos bancos de dados relacionais; Projeto Lógico: redução de um DER a tabelas; Ferramenta CASE para modelagem de dados relacionais; Conhecendo um Sistema Gerenciador de Banco de Dados (SGBD); Álgebra e cálculo relacional Introdução à Linguagem SQL 1
Livro texto Bibliografia SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de Banco de Dados. 5.ed. Rio de Janeiro: Campus, 2006. MACHADO, Felipe Nery Rodrigues; ABREU, Maurício Pereira de. Projeto de Banco de Dados: uma visão prática. 14.ed. São Paulo: Erica, 2007. DATE, C. J.; VIEIRA, Daniel. Introdução a Sistemas de Banco de Dados. 8.ed. Rio de Janeiro: Campus, 2004. Complementar HEUSER, Carlos Alberto. Projeto de Banco de Dados. 5.ed. Porto Alegre: Sagra Luzzatto, 2004. ELMASRI, Ramez; NAVATHE, Shamkant. Sistemas de banco de dados. 4.ed. Rio de Janeiro: Addison_Wesley, 2005. COSTA, Rogério Luis de Carvalho. SQL: Guia Prático. 2.ed. Rio de Janeiro: Brasport, 2007. Metodologia Aula expositiva Exercício em classe Práticas em Laboratório Avaliação 40% Atividades (3,0) Avaliação (7,0) 60% Atividades (3,0) Avaliação Oficial (7,0) Metodologia e Avaliação 2
Cronograma Definições Dados Informação Banco de Dados conjunto de dados inter-relacionados representando informações sobre um domínio SGBD Sistema que habilita os usuário a definir, criar, manter um banco de dados e controlar o acesso as informações Envolve os seguintes componentes: software hardware dados usuários procedimentos 3
SGBD: Contém informações particular sobre: Coleção de dados interrelacionados Um conjunto de programas para acessar os dados Um ambiente conveniente e eficiente para utilizá-lo Aplicações com Banco de Dados SGBD Bancos Empresas aéreas Faculdades Vendas Produção R.H. Onde você imagina que seus dados estão armazenados? (Ex: Lojas, Faculdade, etc ) Em um passado não tão distante... No início, as aplicações com banco de dados era construídas diretamente no sistema de arquivos: Desvantagens Redundância e inconsistência Dificuldade para acesso aos dados Isolamento dos dados Muitos arquivos e formatos Integridade Atomicidade Atualização de um registro único Acesso concorrente (multiusuário) Segurança 4
SGBD - Componentes Hardware componentes utilizados para prover o armazenamento e acesso aos SGBD servidor, rede, etc. Tipicamente servidor central, uma rede de dados e estações Software programas de controle no servidor programas clientes nas estações Usuários Administradores de banco de dados (DBA) acesso total, responsáveis por manter a base de dados Desenvolvedores interagem com o banco de dados de diversas maneiras escrevem aplicações em linguagens (C, VB, Java) que se comunicam com a base de dados Usuários finais interagem com o sistema Exercício Para cada situação abaixo, descreva quais atividades seriam feitas por cada tipo de usuário (dba, desenvolvedores, usuários finais): Desenvolva um aplicativo de controle de estoque; O usuário deverá entrar com os dados de um produto, descrição, estoque, estoque mínimo e máximo; O supervisor poderá imprimir relatórios de posição de produtos em estoque; O acesso para manipulação da estrutura da base de dados deverá ser feito por um usuário chamado chuck, e este deverá ser criado; As telas do sistema deverão utilizar as cores da empresa; 5
Dados Dois tipos de dados As informações necessárias para a organização meta-dados informações sobre o banco de dados dicionário de dados ou catálogos contém informações sobre usuários, direitos e estrutura da base Tipo de acesso: Mono-usuário ou Multi-usuário Integridade não posso ter a mesma informação em locais diferentes Exemplo: Secretaria e Tesouraria acessando a ficha do aluno Compartilhamento não permitir que duas pessoas alterem a mesma informação ao mesmo tempo Exemplo: tanto a secretaria como a tesouraria tentam alterar o endereço do aluno diferentes níveis de acesso - segurança Exercício No cenário abaixo, especifique o que cada usuário pode visualizar e modificar: Cenário: Um provedor de internet sem fio, onde mantém armazenado os dados dos seus clientes, informações sobre cobrança e planos de acesso. Usuários: Gerente de conta Técnico de instalação Cliente 6
Centralizado dados armazenados no mesmo local Distribuído dados em diferentes localizações importância é a transparência no acesso Não confundir com espelhamento Exercício: Dados Um sistema para acesso de fichas de pacientes, usado por 10 médicos e duas clínicas em cidades distintas. centralizado ou distribuído? Por que? Importância de um SGBD Manutenção correta dos dados garantir ao usuário dados íntegros e atualizados evitar inconsistência e redundância de dados redundância: a mesma informações armazenadas em locais diferentes exercício: Qual o problema do seguinte cenário: Em uma empresa de tv a cabo, os dados dos clientes são armazenados em tabelas diferentes para os operadores, para os técnicos e para o depto. de cobrança. Prover acesso aos dados acesso deve ser fácil e rápido. (disponibilidade) Segurança Acesso não autorizado devem ser barrados níveis de acesso diferenciados cópias de segurança exercício Escreva em que locais você imagina que seus dados estão cadastrados. Quando algum telemarketing liga para sua residência, como você imagina que tiveram acesso aos seus dados? 7
Abstração dos dados Proporcionar visão abstrata dos dados para os usuários 3 níveis Físico como os dados estão realmente armazenados, baixo nível Lógico descreve como os dados estão armazenados no BD Relacionamentos Exemplo: type customer = record customer_id : string; customer_name : string; customer_street : string; customer_city : integer; end; Usuário (Visão) As aplicações escondem os detalhes de armazenamento dos dados Por segurança, algumas visões são limitadas a alguns dados Arquitetura 8
Instância e Schema Similar aos tipos e variáveis em programação Schema A estrutura lógica do BD Ex: banco de dados que contém os registros de todos os alunos da faculdade Similar os tipo da variável Físico Lógico Instaância O conteúdo atual do bd em um momento específico Similar ao valor da variável Independência física Habilidade de modificar o esquema lógico sem modificar o esquema físico Aplicações dependem do esquema lógico Modelos de dados Uma coleção de ferramentas para descrever: Dados Relacionamentos Semântica (Significado/Comportamento) Constantes modelos para cada nível de abstração Conceitual representação de alto nível modela fatos e objetos do mundo real, suas propriedades e relacionamentos independente do BD exemplo: Modelo Entidade Relacionamento (MER) Lógico representa através de estruturas dependente do BD exemplos relacional hierárquico e XML orientado a objetos Físico organização no disco dos arquivos (ex: b-tree, tabela hash, etc.) 9
Modelos - gerações 1 a geração: Modelos pré-relacionais modelos hierárquico e de rede 2 a geração: Modelo relacional representação através de tabelas manipulação de dados nas tabelas álgebra relacional consultas Structured Query Language (SQL) relacionamentos e entidades representadas por tabelas 3 a geração: Modelos pós-relacionais modelos orientado a objetos objeto-relacional temporal geográfico, etc... Modelo relacional 10
Definição dos dados em Access Modelo relacional Modelo relacional Definição dos dados em SQL (Oracle) CREATE TABLE Student ( Student_ Id CHAR(9), Stu_name Hometown Birth_date Major GPA Adviser ); VARCHAR2(15), VARCHAR2(12), DATE, CHAR(3), NUMBER(3,2), VARCHAR2(15) 11
Características cada tabela possui um nome único cada coluna da tabela possui um nome único para esta tabela a ordem das colunas e linhas e irrelevante os valores das colunas são do mesmo domínio (texto, real, inteiro, boolean) O elemento linha-coluna possui um valor ou NULL Null ausência de valor, diferente de espaço Chave candidata uma coluna ou um conjunto de colunas que são não nulas únicas Definições o seu valor não se repete naquela tabela identifica uma linha na tabela Chave Primária toda tabela deve ter identifica univocamente a linha imprescindível para manter a integridade Chave estrangeira uma ou mais colunas que são dependentes da tabela pai seu valor não pode ser nulo seu valor existe na tabela pai base para integridade referencial 12
Exercício Sendo o DEPARTMENT a chave da tabela, explique se eu posso ou não inserir as linhas abaixo. Justifique. Exercício Considerando as tabelas abaixo, sendo emp_dept chave estrangeira, referindo-se a department.id. Diga se as inserções abaixo poderão ser feitas. Justifique. 13
12 regras Regra Fundamental toda manipulação do banco de dados deverá ser feita através de técnicas relacionais Representação da informação toda a informação deverá estar representada explicitamente e através de valores nas tabelas Acessibilidade lógica todo valor no banco de dados devera ser acessado pela combinação de nome da tabela, nome do campo e valor da chave primária Informação faltante deverá possuir mecanismo de verificação de inconsistência, para representar valores nulos Catálogos do sistema a descrição das tabelas deverá ser representada da mesma maneira que os dados 12 regras Linguagem de dados deverá suportar ao menos uma linguagem de manipulação e definição de dados Visões atualizáveis as visões deverã refletir os dados reais Níveis de atualização deve possuir diferentes níveis de atualização Independência física as aplicações não devem sofrer alterações quando for alterado o modo de armazenamento ou acesso físico Independência lógica as aplicações não devem ser modificadas quando ocorrerem mudanças nas tabelas, que não envolvam as estruturas e dados já criados 14
Restrição de integridade 12 regras regras de restrição de integridade e referencia devem ser aplicadas pela linguagem de manipulação. As aplicações não devem mudar quando ocorrerem mudanças nestas restrições Distribuição da base de dados programas de aplicação não devem ser modificados até que todos os dados estejam distribuídos Nenhuma sub-versão acessos diretos, utilizando as linguagens de manipulação não devem ser usadas para passar regras de integridade e restrições Modelo Entidade Relacionamento Coleção de entidades e relacionamentos Entidade algo ou objeto com características e diferente dos demais objetos Descrito pelos atributos Relacionamento Associação entre as entidades 15
Modelo Objeto-Relacional Estende o modelo relacional incluindo orientação a objetos Permite atributos de tipos complexos Extensible Markup Language Definida pelo WWW Consortium (W3C) XML Oi Originalmente i uma linguagem de definição i A habilidade de trabalhar com tags, é uma grande ajuda na transferência de dados Está se tornando padrão em troca de dados Existem várias ferramentas para visualização e manipulação 16