Banco de Dados II - Aula 2

Propaganda
Banco de Dados II
Aula 2
Conteúdo:
Introdução a Linguagem SQL
Linguagem de Definição de Dados ( DDL - Data Definition Language )
Profa. Ms. Sueli A. Loddi
Banco de Dados II - Aula 2
A Arquitetura dos Sistemas de Banco de Dados
De acordo com Date(2003), no ano de 1972 foi criado um grupo de estudos para
definir uma arquitetura padrão para um sistema de banco de dados, que atendesse
as demandas teóricas. O nome desse grupo foi “ANSI/X3/SPARC Study Group on
Data Base Management Systems”, e a arquitetura passou
a ser conhecida como ANSI/SPARC.
O autor ressalta que, segundo essa arquitetura, um sistema de banco de dados
pode possui três níveis:
· Nível Interno – Responsável pelo armazenamento dos dados;
· Nível Conceitual – Serve de interface entre o primeiro e o terceiro níveis;
· Nível Externo – Responsável pela visualização dos dados por parte do usuário.
Banco de Dados II - Aula 2
Os três níveis da arquitetura de banco de dados
Fonte: Adaptado de Elmasri e Navathe (2005, p.7) e Date (2003, p.29)
Banco de Dados II - Aula 2
O nível interno ou esquema interno descreve a estrutura de armazenamento
físico do banco de dados Esse esquema utiliza um modelo de dados físico e
descreve, com detalhes completos o armazenamento de dados e caminhos de
acesso ao banco de dados.
O nível conceitual ou esquema conceitual descreve a estrutura de todo o banco
de dados para a comunidade de usuários. O esquema conceitual oculta os
detalhes das estruturas de armazenamento físico e se concentra na descrição de
entidades, tipos de dados, conexões, operações e restrições dos usuário.
Geralmente um modelo de dados representacional e usado para descrever o
modelo conceitual quando o sistema de banco de dados for implementado.
O nível externo ou visão externa constitui-se da visão que o usuário tem do
banco de dados; como os dados são visualizados por ele. Dessa forma, haverá
tantas dessas visões quantas forem as formas distintas que os dados podem ser
visualizados (usuários diferentes, aplicações diferentes, entre outras)
(ELMASRI, NAVATHE, 2005).
Banco de Dados II - Aula 2
Por usuário, podemos entender tanto os desenvolvedores de aplicações, quanto
um usuário final. Porem, observemos ao usuário final são interessa uma
determinada parte do banco de dados e, do seu ponto de vista, essa visão e o
banco de dados completo.
A visão externa poderá ser acessada de diversas formas, inclusive por meio de
ferramentas bastante amigáveis, muitas vezes visuais (normalmente voltadas
para o usuário final).
O desenvolvedor, entretanto, utilizara uma linguagem de alto nível para produzir
o aplicativo desejado. As linguagens para desenvolvimento de aplicações
normalmente utilizarão um subconjunto de comandos para acessar e manipular o
banco de dados.
Chamamos a esse subconjunto de “sublinguagem de dados” e a linguagem de
alto nível que o utiliza, de linguagem “hospedeira”. Dessa forma, enquanto a
linguagem hospedeira e responsável pelos recursos de programação (como
variáveis, estruturas de decisão e repetição), a sublinguagem de dados
responsabiliza-se pelo acesso ao banco de dados. Atualmente, a sublinguagem
de dados mais utilizada e a SQL.
(DATE,2003).
Banco de Dados II - Aula 2
A linguagem SQL foi criada pela International Business Machines (IBM ) na
decada de 1970, em seus laboratórios de pesquisa de San Jose, nos Estados
Unidos. Inicialmente nomeada como Structured Query English Language, ou
Sequel, esta linguagem tinha como objetivo servir como interface para um
sistema de banco de dados relacional denominado Sistema R.
Com o passar do tempo a linguagem evoluiu e passou a se chamar SQL,
tornando-se uma linguagem-padrão para SGBD relacionais comerciais.
Buscando a padronizacao da linguagem:
•1986 : a Amercian National Standards Institute (ANSI) e a International
Standard Organization (ISO) criam a primeira versão padronizada da linguagem
SQL, conhecida como SQL-86 ou SQL1.
•1992 : segunda versão foi lançada a SQL2.
•1999 : a terceira versão foi lançada, inicialmente chamada de SQL3, ou SQL99.
Esta e a versão atual em vigor.
(ELMASRI,NAVATHE,2005; DATE, 2004; SILBERSCHATZ et. al ,1999)
Banco de Dados II - Aula 2
As especificações do padrão SQL99 foi divididas em duas partes: núcleo (core) e
os pacotes (packages). Os fabricantes de SGBDs devem inclui as especificações
do núcleo obrigatoriamente em seus produtos. Já o pacotes sao encarados como
módulos opcionais, cuja falta não compromete o funcionamento do SGBD
relacional. São exemplos de módulos opcionais: Data Minig , Data Warehaouse,
processamento analítico on-line (OLAP), entre outros.
A linguagem SQL e abrangente, possuindo suporte para comandos de definição
de dados, consultas, visões e atualizações. Desta forma ela possui a DDL e a
DML, que estudaremos a seguir.
(ELMASRI,NAVATHE,2005;MOREIRA, 2004)
Banco de Dados II - Aula 2
Tipos de Dados de Atributos e Domínios em SQL
Tipo
Subtipo
Numéric Inteiros
os
SQL
INT
SMALLINT
Reais ou ponto
Flutuante
FLOAT
REAL
DOUBLE PRECISION
Números
Formatados
DECIMAL(i,j) ou DEC(i,j)
NUMERIC(i,j)
Onde: i = precisão ( parte inteira) e j = a escala
( parte decimal)
Banco de Dados II - Aula 2
Tipos de Dados de Atributos e Domínios em SQL
Tipo
Subtipo
Cadeia
De tamanho Fixo
de
caracteres
De tamanho
variável
SQL
CHAR(n) ou CHARACTER(n)
Onde n= tamanho.
Nas cadeias de tamanho fixo o tamanho será
apropriado no banco, sendo ou não usado.
Exemplo: um campo nome com char(10) que
recebeu José no banco ocupará “José
“.
VARCHAR(n) ou CHAR VARYNG(n) ou
CHARACTER VARYNG (n)
Onde n= tamanho.
Nas cadeias de tamanho variável o tamanho
será apropriado no banco será otimizado, sendo
que os “Brancos a direita” serão “desprezados”.
Exemplo: um campo nome com char(10) que
recebeu José no banco ocupará “José”.
Banco de Dados II - Aula 2
Tipos de Dados de Atributos e Domínios em SQL
Tipo
Subtipo
SQL
Lógicos
Booleano
Obs. A
nomenclatura
deste tipo varia
de acordo com o
SGBD
Possui dois valores: Verdadeiro (TRUE) e
Falso(FALSE). Em SQL, dada a presença dos
valores nulos ( NULL), os lógicos assumem um
terceiro valor (UNKNOWN).
Cadeia
de bits
Bit-strings
BIT (n) para cadeias de tamanho fixo ou BIT
VARYNG (n) para tamanho variável
Banco de Dados II - Aula 2
Tipos de Dados de Atributos e Domínios em SQL
Tipo
Subtipo
SQL
Data e
hora
Data
DATE
Contém no mínimo 10 posições e deve
contemplar o formato YYYY-MM-DD. Onde
YYYY = ano, MM-Mês e DD = dia
Hora
TIME
Contém no mínimo 8 posições e deve
contemplar o formato HH:MM:SS. Onde HH=
hora, MM-minuto e SS = segundo.
TimeSta TimeStamp
mp
Engloba os campos Date e Time juntos
fornecendo um um formato YYYY-MM-DD
HH:MM-SS +MS
Onde o MS = seis casa decimais para registrar
os milésimos de segundo.
Banco de Dados II - Aula 2
Comandos DDL
Os comandos básicos são:
Create
Drop
Alter
Banco de Dados II - Aula 2
Criando Banco de Dados
Banco de Dados II - Aula 2
Exemplo: Criando Banco de Dados Teste
Banco de Dados II - Aula 2
Exemplo: Criando Banco de Dados Teste
Banco de Dados II - Aula 2
Exemplo: Criando Banco de Dados Teste
Banco de Dados II - Aula 2
Criando Tabelas
Banco de Dados II - Aula 2
Exemplo de Criação de Tabelas
Banco de Dados II - Aula 2
Alterando Elementos do Banco de Dados Criação de Tabelas
Banco de Dados II - Aula 2
Alterando Elementos do Banco de Dados Criação de Tabelas
Banco de Dados II - Aula 2
Alterando Elementos do Banco de Dados Criação de Tabelas
Banco de Dados II - Aula 2
Alterando Elementos do Banco de Dados Criação de Tabelas
Banco de Dados II - Aula 2
Exercício:
Criar as tabelas
Departamento e
EmpregadoDependente
Banco de Dados II - Aula 2
Exercício:
CREATE TABLE [dbo].[Departamento](
[id_Departamento] [int]
NOT NULL,
[Nm_Departamento] [varchar](50) NOT NULL,
[Id_EmpregadoGerente] [int]
NULL,
CONSTRAINT [PK_Departamento] PRIMARY KEY CLUSTERED
( [id_Departamento] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Banco de Dados II - Aula 2
Exercício:
CREATE TABLE [dbo].[EmpregadoDependente](
[nm_DepartamementoEmpregado]
[dt_NascDependente]
[flg_SexoDependente]
[cod_GrauParentresco]
[Id_EmpregadoDependente]
[id_Empregado]
[varchar](30) NULL,
[datetime] NULL,
[bit] NULL,
[int] NULL,
[int] NOT NULL,
[int] NOT NULL,
CONSTRAINT [PK_EmpregadoDependente_1] PRIMARY KEY CLUSTERED
( [Id_EmpregadoDependente] ASC) WITH (IGNORE_DUP_KEY = OFF) ON
[PRIMARY]
) ON [PRIMARY]
Banco de Dados II - Aula 2
Criadas as tabela devemos criar as contraints
Banco de Dados II - Aula 2
Exercício: Crie as tabelas e contraints que faltam no BancoAula
Banco de Dados II - Aula 2
Remoção
Forma Geral:
DROP <Tipo_elemento> <nome_Elemento>
Onde:
O tipo do elemento = tipo do elemento do banco tais como: TABLE, SCHEMA,
CONSTRAINT, entre outros.
O tipo do elemento especifica “o que” será excluído, como por exemplo um tabela ou
um esquema.
Exemplos:
Exclui Banco de Dados: Drop Database BancoAula
Exclui tabela: Drop table Empregado
Banco de Dados II
Bibliografia
DATE, C. J. Introdução a sistemas de bancos de dados. 8ª Edição. Rio de
Janeiro:Elsevier:2003.
ELMASRI, Ramirez; NAVATHEM, Shamkant B. Sistema de Banco de Dados.
4ª Edição. São Paulo:Perarson Addison Wesley, 2005.
MONTEIRO, Emiliano Soares. Projeto de sistemas de banco de dados. Rio
de Janeiro: Brasport, 2004.
SILBERSCHATZ, Abrahan; KORTH, Henry F.; SUDARSHAN, S. Sistema de
Banco de Dados. 3ª Edição. São Paulo:Makron Books, 1999.
Download