Faculdade
Faculdade
INED
INED
1
Curso Superior de Tecnologia
em Banco de Dados
Disciplina: Projeto de Banco de
Dados Relacional 1
Prof.: Fernando Hadad Zaidan
Unidade
Unidade 2
2
Introdução
Introdução
2ç
ç
a
a
SQL
SQL
Leitura Obrigatória
ELMASRI, R.; NAVATHE, S. B. Sistemas de bancos de
dados: fundamentos e aplicações. 4. ed. São
Paulo: Pearson Education, 2005.
Para Saber Mais
DATE, C. J. Introdução a sistemas de banco de
dados. Rio de Janeiro: Elsevier, 2003.
Leitura adicional para desenvolvimento das aulas
SILBERSCHATZ, Abraham; KORTH, Henry F.;
Objetivos
Objetivos da
da unidade
unidade
• Apresentar os conceitos básicos da linguagem SQL e
a forma como esta linguagem implementa as
operações da álgebra relacional.
4
p
ç
g
Para
Para reflexão
reflexão …
…
• Além da SQL, existem outras linguagens que podem
ser aplicadas em bancos de dados relacionais?
5
Introdução
Introdução
• A linguagem SQL é responsável por garantir um bom
nível de independência do código de um programa em
relação ao SGBD utilizado.
• Trata-se da proposta de uma linguagem padrão
7
Trata se da proposta de uma linguagem padrão
comum aos SGBD’s relacionais, e que pode ser
utilizada para a manipulação (consulta e
alteração) dos dados de um banco, definição da
estrutura a ser utilizada (tabelas e restrições) e, de
forma menos padronizada, definição de
algumas regras do negócio embutidas no próprio banco.
Histórico
Histórico da
da linguagem
linguagem SQL
SQL
• SQL = Structured Query Language – Linguagem de Consulta Estruturada;• Criado pela IBM em San Jose - CA, em 1970 para o produto DB2;
8 • SQL foi adotado pela ANSI (pela American National Standards Institute) em 1986 e pela ISO (International Organization for Standardization) em 1987;
Æ Tornou-se padrão para os SGBD;
Histórico
Histórico da
da linguagem
linguagem SQL
SQL
• A ANSI e ISO publicou a padronização SQL-86, ANSI-89 e ANSI-92; Novamente houveram revisões em 1999 e 2003 para se tornar SQL-1999 e SQL-2003;• Produtos adotam o SQL ANSI mas adicionam extensões proprietárias;
• Ao usar um produto SQL, procure trabalhar voltado para o padrão ANSI;
• SQL tornou-se o padrão para client/server: Client
Cliente / Servidor
Cliente / Servidor
Regras Regras de de Negócio Negócio --A li ã A li ã 10Figura: Arquitetura Cliente / Servidor – SGDB Fonte: http://www.sirmacstronger.eti.br/introdbd.php
Regras Regras de de NegócioNegócio Aplicação
Aplicação
Linha
Linha do tempo SQL
do tempo SQL
11
Histórico
Histórico da
da linguagem
linguagem SQL
SQL
• É uma linguagem não-procedural: ela diz o que fazer e não como fazer;• SQL é que torna possível o funcionamento de um SGBD -sistema gerenciador de banco de dados;
12 • Poupa tempo de programação com entrada/saída de arquivos;
Objetivos
Objetivos da
da padronização
padronização
• A implementação regras de negócio, caso o BD for proprietário (comandos específicos da linguagem SQL), e não padronizado, em uma migração do BD, fatalmente muitos comandos SQL deverão ser reescritos para o novo BD.• Padronização é imprescindível para que se alcance um alto grau
13 Padronização é imprescindível para que se alcance um alto grau de qualidade na engenharia de sistemas;
• Garantir a uniformidade e manutenibilidade dos objetos construídos e disponibilizados;
Objetivos
Objetivos da
da padronização
padronização
O estabelecimento de padrões implica em:• Diminuição de custo na manutenção dos sistemas;
• Coesão dos dados e consistência nas informações fornecidas;
14 • Independência do fabricante;
• Portabilidade entre computadores;
• Estímulo à reutilização dos objetos.
Subdivisões
Subdivisões da
da linguagem
linguagem SQL
SQL
Um esquema de banco de dados precisa de uma linguagens:DDL (Data Definition Language): linguagem de definição de
dados.
Permite a especificação da base de dados; Permite a especificação da base de dados; Definir as tabelas;
Comandos para esquemas de relação; Criação de índices;
Subdivisões
Subdivisões da
da linguagem
linguagem SQL
SQL
DML (Data Manipulation Language): linguagem de manipulação
de dados.
Permite a consulta e atualização de informações; Abrange a álgebra e o cálculo relacional de tuplas; Comandos para inserção exclusão e modificação;
16 Comandos para inserção, exclusão e modificação; Ex.:
- select, insert, delete, …
Subdivisões
Subdivisões da
da linguagem
linguagem SQL
SQL
DCL (Data Control Language - Linguagem de Controle de
Dados).
Controla os aspectos de autorização de dados;
Também as licenças concedidas aos usuários;
17 Controle de quem tem acesso e quem pode manipular dados dentro do banco de dados.
Ex.:
- grant, revoke, alter password, …
Subdivisões
Subdivisões da
da linguagem
linguagem SQL
SQL
DTL (Data Transaction Language - Linguagem de Transação de
Dados).
Inclui comandos para a especificação de iniciação e finalização de transações;
Algumas implementações permitem o bloqueio de dados
18 Algumas implementações permitem o bloqueio de dados para controle de concorrência;
Limitações
Limitações da
da linguagem
linguagem SQL
SQL
• SQL padrão oferece recursos limitados para o tratamento de campos longos;• SQL é uma linguagem mais voltada para descrever conjuntos e suas relações;
19 ç ;
• Não-procedural, ou seja, não permite agrupar as palavras chaves sob a forma de programas executáveis;
• Linguagens de consulta são diferentes das linguagens de programação;
Limitações
Limitações da
da linguagem
linguagem SQL
SQL
• Não se espera que as linguagens de consulta sejam Turing completas• Turing completas - se puder ser demonstrado que a linguagem é computacionalmente equivalente à máquina de Turing;
20 • As linguagens de consulta não foram pensadas para uso em cálculos complexos;
• Linguagem de consulta – de mais alto nível que as de
linguagens de programação tradicionais.
Questões
Questões para
para discussão
discussão
1 -