Modelagem de Banco de Dados
Introdução a Sistemas de Banco de Dados:
conceito de dados, informações, componentes de um sistema de banco de dados
Modelagem de dados
definições de entidades, atributos e relacionamentos Ferramentas de modelagem de dados
Conceitos de Cardinalidade
Generalização e especialização : conceito e exemplos Entidade Associativa : conceito e exemplos
Conceito de Normalização – 1ª , 2ª e 3ª Forma Normal Regras de derivação do Modelo Conceitual para o Modelo
Relacional/Lógico
Regras de derivação do Modelo Lógico para o Modelo Físico Banco de Dados Relacional:
Conceito e Características. Conceitos de Chaves Primária e Estrangeira
Operações de Seleção de dados Comando SELECT do SQL
Plano de Ensino
Sistemas de Banco de Dados
Sistemas de Banco de Dados
Conceitos Gerais
• Banco de Dados: coleção de dados inter-relacionados;
• Um Banco de Dados representa aspectos do mundo real, onde qualquer alteração efetuada no mundo real é automaticamente refletida no banco de dados;
• Dado: é algo que faz parte da realidade;
• Informação: é algo que tem significado;
• Sistema Gerenciador de Banco de Dados (SGBD): conjunto de programas desenvolvido especificamente para a
manutenção de banco de dados;
Sistemas de Banco de Dados
Conceitos Gerais
Entrada Processamento Saída
Dados Transformação Informação
Operações aritméticas (+, -, /, *)
Operações relacionais (<, >, =, <>, >=, <=)
• Comparações:
• Seleções / Filtros
• Ordenação / Classificação Operações lógicas (e, ou, não)
Criação do contexto, cenário ou problema
Análise e
programação Execução
Pessoas / usuários Analistas / programadores Computador
Sistemas de Banco de Dados
Conceitos Gerais
Estrutura Básica
Nome Endereço Cidade Conta
Leonardo Silva Rua Silva 21 São Paulo 456 Maria Aparecida Av Aparecida 56 Osasco 345 Carlos Matos Rua Matos 32 São Paulo 123 Denise Alves Av Alves 78 Guarulhos 789
Tabela Registros
/ Tuplas
Campos / Atributos Banco de Dados
Abstração e Múltiplas Visões de dados: subconjunto virtual da base de dados.
Sistemas de Banco de Dados
Conceitos Gerais
Nome Endereço Cidade Conta
Leonardo Silva Rua Silva 21 São Paulo 456 Maria Aparecida Av Aparecida 56 Osasco 345 Carlos Matos Rua Matos 32 São Paulo 123 Denise Alves Av Alves 78 Guarulhos 789
Conta Saldo
123 178,45
345 525,12
456 312,44
789 259,72
Nome Cidade
Leonardo Silva São Paulo Carlos Matos São Paulo
Nome Saldo
Maria Aparecida 525,12
Visão
Base de Dados Subconjunto Virtual
Sistemas de Banco de Dados
Características
•Controle de Redundância: dados são, em geral, gravados de forma única a fim de garantir integridade e de evitar excesso desnecessário de espaço de armazenamento;
•Compartilhamento de Dados: Um Sistema de Banco de Dados multi-usuário deve permitir que múltiplos usuários acessem o banco de dados ao mesmo tempo. Este fator é essencial para que múltiplas aplicações integradas possam acessar o banco. O Sistema de Banco de Dados multi-usuário deve manter o controle de concorrência para assegurar que o resultado de atualizações sejam corretos;
• Restrição a Acesso não Autorizado: Um Sistema de Banco de Dados deve fornece um subsistema de autorização e segurança, o qual é utilizado pelo Administrador de Banco de Dados (DBA) para criar “contas” e especificar as restrições destas contas. O controle de restrições se aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao SBD;
•Relacionamentos de Dados: recursos de relacionamento de dados gerando uma infinidade de visões;
•Tolerância a Falhas: um Sistema de Banco de Dados deve fornecer recursos para recuperação de falhas tanto de software quanto de hardware.
Sistemas de Banco de Dados
Aplicações
• Sistemas Integrados de Gestão Empresarial
(Produção, Financeiro, Comercial, Administrativo);
• Sistemas para WEB (e-Business, e-Commerce, e- Procurement);
• Pesquisas e estatísticas.
Sistemas de Banco de Dados
Projeto de Banco de Dados
Visão Usuário
Modelo Conceitual
Modelo Lógico
Modelo Físico
Análise Requisitos
Projeto Lógico
Projeto Físico
Sistemas de Banco de Dados
Projeto de Banco de Dados
• Fases do projeto
– Modelagem Conceitual
• Construção de um modelo conceitual, na forma de um
diagrama entidade-relacionamento. Este modelo captura as necessidades da organização em termos de armazenamento de dados de forma independente de implementação.
– Modelagem Lógica
• Construção de um modelo lógico pela transformação do modelo conceitual construído na primeira fase. O modelo
lógico define como o banco de dados será implementado em um SGBD específico.
- Modelagem Física
• Criação do banco de dados e tabelas através de um SGBD conforme Modelagem Lógica.
Sistemas de Banco de Dados
Projeto de Banco de Dados
• Modelo Conceitual
– Diagrama Entidade-Relacionamento
Sistemas de Banco de Dados
Projeto de Banco de Dados
• Modelo Lógico
• Modelo Físico
Sistemas de Banco de Dados
Projeto de Banco de Dados
----Cargo de um docente—
create table cargos
(id integer not null,
nome varchar(100) not null, total_sal integer not null, primary key (id)
);
--Professor da instituição–- create table docentes
(id integer not null,
nome varchar(100) not null, cpf varchar(11) not null, salario integer not null, cargo_id integer not null, primary key (id),
foreign key (cargos_id)
references cargos(id) );
--Alunos da instituição—
create table alunos (
id integer not null,
matricula varchar(20) not null, nome varchar(100) not null, primary key (id)
);
--Matérias–
create table disciplinas (id integer not null,
nome varchar(100) not null, codigo varchar(10) not null, primary key (id)
);
--Turmas—
create table turmas
(id integer not null,
nome varchar(100) not null, qtd_alunos integer not null, media decimal(38,36), docente_id integer not null, disciplina_id integer not null, primary key (id),
foreign key (docentes_id) references docentes(id),
foreign key (disciplinas_id) references disciplinas(id)
);
• Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de
programas que permite aos usuários criar e manter um banco de dados.
– É um sistema de software de propósito geral que facilita os processos de definição,
construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações.
Sistemas de Banco de Dados
Sistema Gerenciador de Banco de Dados (SGBD)
• Hierárquicos
Foram os primeiros a surgir no mercado. Organizavam os dados na forma de um organograma empresarial. IMS, SYS2000, DL/1
• Redes
Dados são dispostos em registros interligados por ponteiros. Possui uma estrutura complexa porém muito rápida. IDMS , DMS-1100, IDS
• Relacional
É a tecnologia mais difundida. Baseado no conceito de matrizes (as linhas são os registros e as colunas os campos). DB2, ORACLE, INGRES, SQL Server, INFORMIX
• Orientados ao Objeto e Banco de Dados Universal
Dão suporte ao paradigma Orientado a Objetos. Ainda não são muito difundidos. O2, Jasmine
Sistemas de Banco de Dados
Sistema Gerenciador de Banco de Dados (SGBD)
Tipos de SGBD´s
Sistemas de Banco de Dados
Sistema Gerenciador de Banco de Dados (SGBD)
Questão para discussão
Surgimento dos SGBD´s
Razões ou motivações ?
ODBC - Open DataBase Connectivity
• São drivers que fornecem uma interface uniforme que permite a
interação entre aplicativos e diferentes gerenciadores de bancos de dados.
• Aplicativos que utilizam o API do ODBC são capazes de se
comunicar com qualquer gerenciador relacional para o qual exista um driver ODBC.
Programa aplicativo
SGBD 1
SGBD 2
SGBD N
BD
BD
BD Driver
ODBC 1 Driver ODBC 2
Driver ODBC N
Sistemas de Banco de Dados
Sistema Gerenciador de Banco de Dados (SGBD)
Fontes de Dados (ODBC)
Sistemas de Banco de Dados
Sistema Gerenciador de Banco de Dados (SGBD)
A OleDb é uma biblioteca desenvolvida pela Microsoft com base no Component Object Model (COM). Essa biblioteca de interface COM, permite o acesso universal a diversas fontes de dados. É o sucessor do ODBC.
OLEDB (VB 2010)
Conexão com Banco de Dados
OLEDBConnection
Um objeto OleDbConnection representa uma conexão exclusiva com uma fonte de dados. Com um sistema de banco de dados cliente/servidor, é equivalente a uma conexão de rede no servidor.
Provider
Produto String de conexão Access 2003 Microsoft.Jet.Oledb.4.0 Access 2007 Microsoft.ACE.OLEDB.12.0
Oracle MSDAORA
SQL Server 2008 SQLOLEDB MySql 5.1 MySQLProv
Dim conn As New OleDb.OleDbConnection("Provider =
Microsoft.ACE.OLEDB.12.0; Data Source = cadastros.accdb")
conn.Open()
Sistemas de Banco de Dados
Banco de Dados Distribuídos
• Dados armazenados em diversos locais
• Sites pouco acoplados - sem componentes físicos em comum
• Cada nó executa transações que processam dados em um ou vários nós
• Processadores dos nós conectados em rede
Sistemas de Banco de Dados
Banco de Dados Centralizado
Rede de Comunicação de
Dados
Sistemas de Banco de Dados
Banco de Dados Distribuídos
Rede de Comunicação de
Dados
Sistemas de Banco de Dados
Banco de Dados Distribuídos Razões para a Distribuição
• Estrutura das Organizações (descentralização)
• Grande Volume de Dados
• Sistemas Heterogêneos
• Acesso Dificultado
• Contingência
Sistemas de Banco de Dados
Banco de Dados Distribuídos Aplicações
• Companhias Aéreas
• Redes de Lojas
• Cadeias de Hotéis
• Bancos
Qualquer organização
com estrutura descentralizada
Sistemas de Banco de Dados
Banco de Dados Distribuídos Características de um BDD
• Confiabilidade - componentes replicados eliminam pontos únicos de falha.
• Facilidade de Expansão
• Transparência na Gerência dos Dados Distribuídos, Fragmentados e Replicados
• Aumento de Desempenho
Sistemas de Banco de Dados
Banco de Dados Distribuídos Desempenho em BDD
• Proximidade dos dados de seus pontos de uso
• Replicação total: exige controle de concorrência
distribuído e protocolos de finalização de transações
Sistemas de Banco de Dados
Banco de Dados Distribuídos Recursos para Distribuição
• Replicação
– Disponibilidade
– Aumento da sobrecarga em atualizações – Aumento de Paralelismo
• Fragmentação – Vertical
– Horizontal
Sistemas de Banco de Dados
Banco de Dados Distribuídos Replicação
Rede de Comunicação de
Dados
Banco Agência Conta Nome Estado Transação
222 234 23456 Marta Moura SP 55,00
222 545 45678 Carlos Alves RJ 345,45
222 212 67890 Aldo Silva SP 123,45
222 510 56789 Pedro Pereira RJ 259,67
222 268 12345 Ana Machado SP 735,65
222 584 34567 Tulio Chaves RJ 424,73
Sistemas de Banco de Dados
Banco de Dados Distribuídos Fragmentação (horizontal)
Rede de Comunicação de
Dados
Banco Agência Conta Nome Estado Transação
222 545 45678 Carlos Alves RJ 345,45
222 510 56789 Pedro Pereira RJ 259,67
222 584 34567 Tulio Chaves RJ 424,73
Banco Agência Conta Nome Estado Transação
222 234 23456 Marta Moura SP 55,00
222 212 67890 Aldo Silva SP 123,45
222 268 12345 Ana Machado SP 735,65
• SQL - Structured Query Language
• Desenvolvida pela IBM para o SYSTEM R (anos 70)
• Em 1986 o ANSI publicou um padrão SQL
• A versão em uso é a SQL-92 (ANSI X3.135-1992)
Sistemas de Banco de Dados
SQL - Histórico
Sistemas de Banco de Dados
Structured Query Language - SQL
• SQL
– Linguagem padrão para acesso a SGBD Relacionais
• Recursos
– Manipulação de dados
– Definição de bases de dados
• Formas de uso
– Interativamente
– Embutida em linguagens de programação
• Vantagens
– Utilização padronizada para diferentes SGBD – Processamento no lado do Servidor
• DDL - Data Definition Language Ex: Create, Alter e Drop.
• DML - Data Manipulation Language Ex: Select, Insert, Update e Delete.
• DCL - Data Control Language
Ex: comandos de controle como Grant e Revoke.
Linguagens para Manipulação de Dados
SQL possui um grupo de instruções para a definição, manutenção e controle dos esquemas conceituais:
Sistemas de Banco de Dados
Structured Query Language - SQL
Sistemas de Banco de Dados
SQL
Alunos matricula nome
matricula Disciplinas nome codigo
matricula nome 1234 Roberto Chaves 2345 Carmem Silva 3456 Ana Alves
codigo nome
A Matemática B Física C Geografia
select * from Alunos
matricula nome 1234 Roberto Chaves 2345 Carmem Silva 3456 Ana Alves
Sistemas de Banco de Dados
SQL
Alunos matricula nome
matricula Disciplinas nome codigo
matricula nome 1234 Roberto Chaves 2345 Carmem Silva 3456 Ana Alves
codigo nome
A Matemática B Física C Geografia
select nome from Alunos where matricula = 2345
nome Carmem Silva
Sistemas de Banco de Dados
SQL
Alunos matricula nome
matricula Disciplinas nome codigo
matricula nome 1234 Roberto Chaves 2345 Carmem Silva 3456 Ana Alves
codigo nome
A Matemática B Física C Geografia
select Alunos.nome, Disciplinas.nome from Alunos, Disciplinas, Matriculas where Alunos.matricula
= 2345 and Alunos.matricula = Matriculas.matricula and Matriculas.codigo = Disciplinas.codigo
Matriculas codigo matricula
matricula codigo
1234 A
1234 C
2345 B
2345 C
3456 A
3456 B
Alunos.nome Disciplinas.nome Carmem Silva Física
Carmem Silva Geografia
Sistemas de Banco de Dados
SQL
Chave Primária (Primary Key - PK) e Estrangeira (Foreign Key – FK) Chave Primária:
• atributos ou conjuntos de atributos candidatos que identificam de forma única um registro;
Chave Estrangeira:
• atributo ou conjunto de atributos candidatos que permitem a implementação de relacionamentos no modelo relacional.
Funcionários
código funcionário nome
data admissão código depto
Dependentes
código funcionário sequência
nome dependente grau parentesco data nascimento
Departamentos
código depto Nome depto PK
FK
PK
Sistemas de Banco de Dados
SQL
Chave Primária (Primary Key - PK) e Estrangeira (Foreign Key – FK)