Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados



Documentos relacionados
1. Domínio dos Atributos

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL. Autor: Renata Viegas

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

Structured Query Language (SQL) Aula Prática

SQL - Criação de Tabelas

A linguagem SQL

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

Comandos DDL. id_modulo = id_m odulo

Structured Query Language (SQL)

Linguagem SQL Sub-linguagem DDL

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

Introdução ao SQL. O que é SQL?

PHP INTEGRAÇÃO COM MYSQL PARTE 1

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

SQL DDL. Frederico D. Bortoloti

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

BANCO DE DADOS CONCEITOS BÁSICOS

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Regras de Integridade. Profa. Késsia Marchi

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Programação SQL. Introdução

Linguagem de Consulta - SQL

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

Disciplina: Unidade V: Prof.: Período:

O que são Bancos de Dados?

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

SQL (Structured Query Language)

Linguagem SQL (Parte II)

Núcleo de Pós Graduação Pitágoras

SQL (Structured Query Language)

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

SQL (Structured Query Language)

Disciplina de Banco de Dados Parte V

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Structured Query Language (SQL)

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Introdução a Sistemas de Bancos de Dados

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

SQL (STRUCTUREDQUERY LANGUAGE)

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

IFRO - Câmpus Ariquemes hayslan.bucarth@ifro.edu.br Social: hayslan. Banco de Dados. Prof. Hayslan N C Bucarth

Exercícios de Lógica Exercícios de Fixação 08

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Linguagem SQL (Parte I)

Comandos de Manipulação

MODELO RELACIONAL - UFMA

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Prof.: Clayton Maciel Costa

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

SQL (STRUCTUREDQUERY LANGUAGE)

Técnicas e Linguagens para Banco de Dados I

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Núcleo de Pós Graduação Pitágoras

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL


SQL Structured Query Language

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

SQL Básica. Andre Noel

CICLO DE VIDA DE UM BD

UNISA Universidade de Santo Amaro. Material de Estudo. Módulo I: Básico Banco de dados SQL Server.

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Prof.: Clayton Maciel Costa

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Gestão de Tecnologia da Informação

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

SQL DDL ALTERAÇÃO DA ESTRUTURA DE TABELAS - ALTER TABLE - ALTER TABLE NOME_TABELA ADD [COLUMN] NOME_COLUNA TIPO_COLUNA RESTRIÇÕES

Fundamentos do Sistema Gerenciador de Banco de Dados

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Modelo de Dados. Modelos Conceituais

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Transcrição:

Capitulo 2 1. MODELO LÓGICO DE BANCO DE DADOS... 2 1.1 Definição... 2 1.2 Mapeando o modelo conceitual para o modelo lógico... 2 1.2 Dicionário de dados... 3 2. MODELO FÍSICO DO BANCO DE DADOS... 4 2.1 Definição... 4 2.2 Mapeando o modelo conceitual para o modelo lógico... 4 3.BIBLIOGRAFIA... 9 1

1. MODELO LÓGICO DE BANCO DE DADOS 1.1 Definição Projetar um esquema de um banco de dados relacional a partir de um modelo conceitual denomina-se projeto lógico de um banco de dados. A partir de um modelo conceitual aplicamos um algoritmo e temos um modelo lógico do banco. Entende-se por algoritmo uma seqüência de passos para atingir um determinado objetivo. 1.2 Mapeando o modelo conceitual para o modelo lógico Mapeamento de entidades regulares (Comuns) : Para cada entidade do modelo conceitual criar uma entidade no modelo lógico: Mapeamento de atributos de atributos chaves Mais importantes da entidade : Para cada atributo chave da entidade do modelo conceitual criar um atributo PK (Primary key) na entidade do modelo lógico. Mapeamento de atributos simples: Para cada atributo simples da entidade do modelo conceitual criar um atributo simples na entidade do modelo lógico. Mapeamento de atributos compostos: Para cada atributo composto criar na entidade do modelo lógico somente os componentes do atributo composto. Mapeamento de atributos multivalorados: Para cada atributo multivalorado criar uma entidade no modelo lógico contendo o atributo chave (FK) da entidade que este atributo pertence mais um atributo chave desta nova entidade (PK). A chave desta entidade será estes dois atributos(pks). Mapeamento de entidades fracas: Para cada entidade fraca criar uma entidade no modelo relacional incluindo nesta entidade fraca o atributo chave da entidade Pai. A chave primária desta entidade será composta pelo atributo chave da entidade pai mais o atributo chave da entidade fraca. 2

Mapeamento de relacionamentos 1:N: Para cada relacionamento um para muitos exportar o atributo chave da entidade do lado 1 para o lado N. Este atritubuto exportado tem o nome de Foreign Key (FK). Mapeamento de relacionamentos N:N ou N:M: Para cada relacionamento muitos para muitos criar uma nova entidade tendo como chave os atributos das entidades participantes do relacionamento que serão a chaves primárias desta nova entidade além de serem foreing keys e mais os atributos do relacionamento. Mapeamento de relacionamentos 1:1: Neste tipo de relacionamento escolhe-se uma das entidades e exporta seu atributo chave para a outra entidade, sendo a FK desta entidade. 1.2 Dicionário de dados O dicionário de dados descreve a terminologia utilizada para o desenvolvimento do modelo de dados do sistema. Apresenta uma descrição textual da estrutura lógica e física do banco de dados. Neste dicionário você pode simplesmente colocar a descrição por extenso de campos e tabela como também colocar outras características dos compôs como, tipo de dado, se o mesmo é requerido ou não. Abaixo segue um exemplo de um pequeno dicionário de dados. tb_funcionario noidfuncionario Identificador numérico de cada funcionário cadastrado(código). snome Nome completo do funcionário. semail Email do funcionário. susername Login para o funcionario se logar no WebSuporte. spassword Senha para o funcionário se logar no WebSuporte. tb_empresa noidempresa srazaosocial Identificador número de cada empresa cadastrada(código) Nome completo da empresa 3

2. MODELO FÍSICO DO BANCO DE DADOS 2.1 Definição O modelo físico de um banco de dados está relacionado com a implementação de um modelo lógico em algum sistema de banco de dados de mercado (SQL SERVER, ORACLE, FIREBIRD, MYSQL etc..). No modelo físico mapeamos a entidades em tabelas e atributos em colunas destas tabelas, mas o modelo físico não está limitado a esta implementação, mas também a técnicas de tunning (melhorias de desempenho). Muitas vezes será necessário desnormalizar nosso modelo para termos um ganho de desempenho. Quem propões tais mudanças serão os DBAs, pois é preciso ter um conhecimento muito sólido do SGBD(Sistema gerenciado de banco de dados) no qual o modelo lógico será implementado. No momento veremos como implementar as tabelas e atributos e em um capítulo mais adiante estaremos vendo outras etapas do projeto físico de um banco de dados. 2.2 Mapeando o modelo conceitual para o modelo lógico Mapear um modelo lógico em um modelo físico na primeira fase é simplesmente transformar as entidades em tabelas e atributos em colunas das tabelas. Um conjunto de tabelas forma um banco de dados e para isso devemos também criar um banco de dados no SGBD escolhido. Para a criação destas tabelas, campos e data base utilizamos a linguagem SQL. A linguagem SQL pode ser considerada uma das maiores razões para o sucesso dos bancos de dados relacionais no mundo comercial. Como se tornou padrão para os bancos relacionais, os usuários têm pouca preocupação ao migrar suas aplicações de um banco de dados para outro.na prática existem muitas diferenças entre um SGBD para outro. Entretanto se o usuário for diligente e usar somente aquelas funcionalidades que fazem parte do padrão, e se ambos os sistemas suportarem plenamente este padrão, então a conversão entre os dois sistemas será muito fácil. O nome SQL é derivado de Structured Query Language (Linguagem estruturada de consulta). A 4

SQL é a linguagem padrão para os SGBDs relacionais comerciais. Um esforço conjunto da ANSI (American National Standards institute) e da ISO(Internation Standards Organization) chegou a versão padrão (ANSI,1986), chamada SQL-86 ou SQL1. Uma nova versão revisada e expandida chamada SQL2 (também conhecida como SQL-92) foi desenvolvida em seguida. A próxima versão do padrão foi originalmente chamada de SQL3, mas atualmente é conhecida como SQL-99. A linguagem SQL é bem abrangente, cobre definição de dados, consulta e atualizações, possuindo comandos DDL(Data definition language Linguagem de definição de dados) e DML (Data Manipulation Languagem - Linguagem de manipulação de dados). Para a criação do modelo físico do banco de dados utilizaremos o grupo chamado DDL. Mapeando entidades Para mapear uma entidade em uma tabela no banco de dados estaremos utilizando a instrução create table do grupo DDL da linguagem SQL. Com o comando create table definimos o nome da tabela seus atributos tipos de dados e restrições. Os tipos de dados podem ser numéricos, cadeia de caracteres (string), booleanos, data e horário. Numéricos: Tipos numéricos englobam os inteiros de vários tamanhos(inteiros ou int) e smallint e os números de ponto flutuante ou seja, com casas decimais temos: decimal(i,j) ou numeric (i,j) onde i é a precisão e j o número de casas decimais. Cadeia de caracteres: Os caracteres podem ter tamanho fixo como char(n) onde n é o tamanho da cadeia de caracteres e caracteres de tamanaho variável como o varchar(n) onde n é o número máximo de caracteres. Booleano: Podem assumir o valor de verdadeiro ou falso. Date e time: O tipo date armazena datas e o tipo time armazena horas minutos e segundos. 5

Timestamp: é um tipo de dados que armazena data e hora. Como restrições podemos considerar se um determinado campo poderá aceitar NULO (Nenhum valor) ou não. Por regra todo campo chave (PK) deverá ser NOT NULL, ou seja não NULO. Abaixo segue a sintaxe da instrução CREATE TABLE e logo a seguir o mapeando de um modelo lógico para o físico. SINOPSE DO CREATE TABLE: CREATE [ [ LOCAL ] { TEMPORARY TEMP } ] TABLE nome_da_tabela ( { nome_da_coluna tipo_de_dado [ DEFAULT expressão_padrão ] [ restrição_de_coluna [,... ] ] restrição_de_tabela } [,... ] ) [ INHERITS ( tabela_ascendente [,... ] ) ] [ WITH OIDS WITHOUT OIDS ] onde restrição_de_coluna é: [ CONSTRAINT nome_da_restrição ] { NOT NULL NULL UNIQUE PRIMARY KEY CHECK (expressão) REFERENCES tabela_referenciada [ ( coluna_referenciada ) ] [ MATCH FULL MATCH PARTIAL ] [ ON DELETE ação ] [ ON UPDATE ação ] } [ DEFERRABLE NOT DEFERRABLE ] [ INITIALLY DEFERRED INITIALLY IMMEDIATE ] e restrição_de_tabela é: [ CONSTRAINT nome_da_restrição ] { UNIQUE ( nome_da_coluna [,... ] ) PRIMARY KEY ( nome_da_coluna [,... ] ) CHECK ( expressão ) FOREIGN KEY ( nome_da_coluna [,... ] ) REFERENCES tabela_referenciada [ ( coluna_referenciada [,... ] ) ] [ MATCH FULL MATCH PARTIAL ] [ ON DELETE ação ] [ ON UPDATE ação ] } [ DEFERRABLE NOT DEFERRABLE ] [ INITIALLY DEFERRED INITIALLY IMMEDIATE ] 6

EXEMPLOS: MAPEANDO PARA O MODELO FÍSICO O MODELO LÓGICO ABAIXO: CLIENTE CPF NOME LOGRADOURO BAIRRO NOTA FISCAL DE VENDA NUMERO NOTA CPF (FK) DATA DE FATURAMENTO ITEM DA NOTA NUMERO NOTA (FK) CODIGO DO PRODUTO (FK) PRODUTO CODIGO DO PRODUTO DESCRICAO Mapeando a entidade cliente do modelo lógico: CREATE TABLE TB_CLIENTE ( CPF INT NOT NULL, NOME VARCHAR(50), LOGRADOURO VARCHAR(100), BAIRRO VARCHAR(30), PRIMARY KEY (CPF) ); 7

Mapeando a entidade Nota fiscal de venda: CREATE TABLE TB_NF_VENDA ( NUMERONF INT NOT NULL, DATAFATUR DATETIME, CPF INT NOT NULL, PRIMARY KEY (NUMERONF), FOREIGN KEY (CPF) REFERENCES TB_CLIENTE(CPF) ); Mapeando a entidade produto: CREATE TABLE TB_PRODUTO ( CODPRODUTO INT NOT NULL, DESCRICAO VARCHAR(50) NOT NULL, PRIMARY KEY (CODPRODUTO) ); Mapeando a entidade TB_ITEN_NOTA_VENDA CREATE TABLE TB_ITEM_NOTA_VEDA ( NUMERONF INT NOT NULL, CODPRODUTO INT NOT NULL, PRIMARY KEY (CODPRODUTO,NUMERONF), TB_PRODUTO(CODPRODUTO), ); FOREIGN KEY (CODPRODUTO) REFERENCES FOREIGN KEY (NUMERONF) REFERENCES TB_NF_VENDA(NUMERONF) 8

3.BIBLIOGRAFIA NAVATHE, ELMASRI. Sistema de banco de dados. 4º Edição. Editora Pearson. 9