Texto

(1)

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

(2)

Sistemas de Banco de Dados

(3)

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;

(4)

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

(5)

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

(6)

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

(7)

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.

(8)

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.

(9)

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

(10)

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.

(11)

Sistemas de Banco de Dados

Projeto de Banco de Dados

Modelo Conceitual

– Diagrama Entidade-Relacionamento

(12)

Sistemas de Banco de Dados

Projeto de Banco de Dados

Modelo Lógico

(13)

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)

);

(14)

• 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)

(15)

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

(16)

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 ?

(17)

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)

(18)

Fontes de Dados (ODBC)

Sistemas de Banco de Dados

Sistema Gerenciador de Banco de Dados (SGBD)

(19)

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

(20)

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()

(21)

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

(22)

Sistemas de Banco de Dados

Banco de Dados Centralizado

Rede de Comunicação de

Dados

(23)

Sistemas de Banco de Dados

Banco de Dados Distribuídos

Rede de Comunicação de

Dados

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

• 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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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.

(38)

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)

Imagem

Referências

temas relacionados :