Вы находитесь на странице: 1из 75

Bancos de Dados

Prof. Ronaldo Lopes de Oliveira

Modelo Relacional (MR)

Modelos de Dados Modelo Relacional


Histrico
Proposto por E.F.Codd em 1970 Testado na IBM no projeto System-R (1973-1979) Baseado na teoria de relaes entre conjuntos e lgebra relacional Em 1974 Don Chamberlin e outros pesquisadores propuseram a linguagem SQL Em 1979 a empresa Relational Software lana o primeiro SGBD relacional comercial: Oracle Em 1981 a IBM lana SQL/DS e em 1983 DB2 Demorou mais de duas dcadas para se firmar como principal modelo utilizado em SBDs

Modelos de Dados Modelo Relacional


Definio Formal
Domnio: Conjunto de valores atmicos (indivisveis, relacionados com tipo de dados). Esquema de relao: R(A1, A2, ..., An), onde R o nome da relao e Ai representa um atributo da relao R. Atributo: Nome dado ao papel de um domnio na relao. Domnio de atributo: dom(Ai)

Modelos de Dados Modelo Relacional


Definio Formal (continuao)
Tupla: Lista ordenada de valores t=<v1, v2, ..., vn>, onde vi dom(Ai) ou vi nulo Definio Alternativa: Tupla um conjunto de pares ordenados (<atributo>,<valor>) onde: vi dom(Ai) Grau da Relao: nmero de atributos da relao Cardinalidade da Relao: nmero de tuplas da relao Instncia de relao: r(R), conjunto de tuplas: r={t1,t2,..., tn}

Modelos de Dados Modelo Relacional


Definio Formal (continuao)
Inteno: esquema de relao R Extenso: instncia de relao - r(R) r(R) um conjunto finito de mapeamentos r = {t1, t2, ..., tn}, ti = R x D, R={A1, A2, ..., An} e D = D1 U D2 U ... U Dn Valor Nulo: valor desconhecido ou no existente Instncia corrente: instncia atual de uma relao

Modelos de Dados Modelo Relacional


Definio Formal
Observaes Importantes:
A relao R, pode ser vista como um produto cartesiano de domnios: r(R) (dom(A1) x dom(A2) x ... x dom(An) Relao diferente de arquivo: arquivo uma implementao fsica de uma ou mais relaes. No arquivo os registros obedecem a uma seqncia particular e numa relao no exigido a ordenao das tuplas

Modelos de Dados Modelo Relacional


Caractersticas das relaes
Ordenamento de tuplas: no exigido Ordenamento de valores: exigido formalmente de acordo com a definio de tupla; uma definio alternativa de relao pode relaxar a exigncia do ordenamento de valores na tupla. Valores atmicos: modelo relacional normalizado na 1FN exige que os atributos tenham valores atmicos, diferentemente do modelo relacional no normalizado que permite atributos multivalorados

Modelos de Dados Modelo Relacional


Caractersticas das relaes
Esquema de relao: pode ser interpretado como uma assertiva que define o que pode ser armazenado Instncia de relao: fato ou instncia da assertiva A relao o nico construtor para entidades e relacionamentos

Modelos de Dados Modelo Relacional


Notao Formal
Esquema de relao: R(A1, A2, ..., An) Instncia de relao: r(R) Tupla: t = <v1, v2, ..., vn> Valor do atributo Ai em uma tupla t: t[Ai] ou t.Ai Subtupla: t[Av, Aw, ..., Az] Nomes de relaes: R, S, Q Nomes de instncias de relaes: r, s, q Nomes de tuplas: t, u, v

Modelos de Dados Modelo Relacional


Chaves de Relao
SuperChave: qualquer subconjunto de atributos que identifica univocamente uma tupla da relao Chave: uma superchave em que no se pode tirar nenhum dos seus atributos componentes sem perder a sua caracterstica de superchave, ou seja, uma superchave mnima Chave candidata: cada chave de uma relao uma chave candidata a ser a chave primria da relao

Modelos de Dados Modelo Relacional


Chaves de Relao (continuao)
Chave primria: uma chave candidata que foi considerada principal pelo projetista e foi designada para determinar a ordenao lgica das tuplas na relao quando da sua implementao fsica Chave alternativa (chave nica): uma chave candidata que no foi designada para ser chave primria Chave estrangeira (chave externa): um atributo includo em uma relao para permitir a representao de uma associao lgica entre tuplas de duas relaes

Modelos de Dados Modelo Relacional


Esquema de um banco de dados relacional:
o conjunto de esquemas de relaes: S = {R1, R2, ..., Rn} e um conjunto de restries de integridade definidas sobre S

Instncia (ou estado) de um bd relacional:


o conjunto de instncias de relaes que compem o banco de dados em um determinado instante de tempo

Modelos de Dados Modelo Relacional


Restries bsicas representadas
Restrio de unicidade (ou de identificao):
especificao de chave primria e chave nica de entidade especificao dos valores que podem ser vinculados aos atributos da relao Representada por restrio Null/Not Null para definir opcionalidade lgica de propriedades (atributos) da relao

Restrio de domnio:

Restrio de opcionalidade:

Modelos de Dados Modelo Relacional


Restries bsicas (continuao)
Restrio referencial:
especificao de dependncia entre valores armazenados na chave estrangeira de uma tabela em relao aos valores de um atributo (geralmente a chave primria) de outra relao

Restries de dependncia funcional:


especificao de atributos da relao que determinam funcionalmente outros atributos da relao conceito usado no processo de normalizao de relaes

Modelos de Dados Modelo Relacional


Outros conceitos importantes
Vises
So relaes virtuais definidas sobre relaes armazenadas no banco de dados teis para simplificar consultas complexas e implementar restries de acesso s relaes definidas a partir de predicados de seleo Atualizaes atravs de vises so limitadas

Modelos de Dados Modelo Relacional


Outros conceitos importantes
Gatilhos
So procedimentos disparados executados automaticamente pelo SGBD toda vez que acontece um ao de atualizao de dados pr-determinados; Na definio de um gatilho alm de se indicar a ao de atualizao que ser considerada e o objeto de dados sobre o qual a ao dever ser considerada, tambm deve ser indicado o momento reativo atualizao em que o procedimento deve ser executado

Modelos de Dados Modelo Relacional


Outros conceitos importantes
Procedimentos e Funes Armazenados
So procedimentos e funes similares aos que so feitos normalmente nas aplicaes. A diferena que estes procedimentos so armazenados diretamente no Sistema de Banco de Dados e portanto ficam sob o gerenciamento do SGBD; Procedimentos e funes armazenadas para serem executadas devem ser explicitamente ativadas nas aplicaes; A principal vantagem do uso de procedimentos e funes armazenados que eles podem ser definidos uma nica vez e compartilhados por diversas aplicaes.

Modelos de Dados Converso MER-MR


Existem regras de converso para:
Hierarquia de especializao Tipo regular de entidade
Atributos simples e atributos compostos Atributos monovalorados e multivalorados Atributos identificadores e no identificadores Atributos opcionais e no opcionais

Tipo fraco de entidade Tipo de relacionamento 1:1 Tipo de relacionamento 1:N Tipo de relacionamento N:N

Normalizao

Normalizao
Dependncias Funcionais (DF)
Restrio de Integridade envolvendo dois conjuntos de atributos de uma relao Notao Formal Seja R um conjunto de atributos de uma relao R Seja R um conjunto de atributos de uma relao R A dependncia funcional vale em R se para quaisquer tuplas t1 e t2 temos: t1[] = t2[] t1[] = t2[]

Normalizao
Dependncias Funcionais (DF)
DF uma generalizao do conceito de superchave
Se K uma superchave de R ento K R, ou seja, t1[K] = t2[K] t1[R] = t2[R]

Normalizao
Utilizao de DFs:
um conjunto F de DFs serve para:
Restringir o conjunto de relaes vlidas, diz-se ento que: F vale em R Testar se uma instncia r de relao R satisfaz F, diz-se ento que: R satisfaz F

Normalizao
DFs Triviais
Se ento Exemplos: A A AB A AB B

Fecho (F+) de um conjunto F de DFs


o conjunto F mais as DFs que podem ser inferidas logicamente por F

Normalizao
Formas Normais
So regras que se apiam fortemente no conceito de dependncias funcionais para estabelecer um bom projeto de banco de dados relacional. A normalizao o processo em que relaes que no obedecem a certas formas normais so decompostas em outras relaes que obedecem s mesmas.

Normalizao
Primeira Forma Normal (1FN)
Uma relao est em 1FN se todos os seus atributos so definidos sobre domnios atmicos e cada atributo est associado a um nico valor do seu domnio.

Segunda Forma Normal (2FN)


Uma relao est em 2FN se cada atributo que no compe a chave primria funcionalmente dependente de toda a chave primria (definio mais conhecida). Uma relao est em 2FN se todo atributo que no compe uma chave candidata depende funcionalmente de toda uma chave candidata. Trata-se, portanto, de eliminar dependncias funcionais parciais (definio mais correta).

Normalizao
Terceira Forma Normal (3FN)
Uma relao est em 3FN se ela est em 2FN e um atributo que no compe uma chave candidata no depende funcionalmente de maneira transitiva de uma chave candidata, ou em outros termos, uma relao est em 3FN se para cada dependncia funcional que vale na relao, uma das seguintes condies for satisfeita: uma dependncia funcional trivial uma superchave da relao um atributo que compe uma chave candidata

Normalizao
Forma Normal Boyce-Codd (FNBC)
Uma relao R est em FNBC em relao a um conjunto de dependncias funcionais F se para toda DF em F+ da forma onde R e R, pelo menos uma das seguintes dependncias funcionais vlida: uma dependncia funcional trivial uma superchave da relao

Normalizao
Propriedades desejveis na decomposio de relaes
Decomposio com juno sem perdas (ligao no perdedora)
Seja R1 e R2 duas relaes obtidas da decomposio da relao R em que vale o conjunto de dependncias funcionais F. A decomposio sem perdas se uma das seguintes condies for satisfeita: R1 R2 R1 estiver contida em F+ R1 R2 R2 estiver contida em F+

Normalizao
Propriedades desejveis na decomposio de relaes
Preservao de dependncias funcionais
Definio: Uma Restrio Fi para uma relao Ri obtida pela decomposio de R (R decomposta em R1,R2,...,RN) o conjunto de DFs em F+ que incluem apenas atributos de Ri Seja Fd = F1 F2 ... Fn-1 Fn A decomposio de R em R1,R2,...,RN preserva DFs se Fd+ = F+

Normalizao
Comparao entre FNBC e 3FN
A FNBC mais restritiva, isto , toda relao em FNBC est em 3FN mas no vice-versa A decomposio em relaes na 3FN sempre preservam as propriedades e em FNBC nem sempre Relaes em 3FN podem conter repeties de informao (redundncias) e podem exigir valores nulos o que no acontece em FNBC Se no for possvel obter relaes em FNBC sem perda de juno e com preservao das dependncias funcionais ento obter relaes em 3FN que mantenham as demais propriedades.

Controle de Acesso

Controle de Acesso
Restries para acesso aos dados
So as regras que devem ser obedecidas para garantir acessos legais e evitar acessos ilegais Mecanismo bsico a criao de usurios / contas/ perfis e associao de privilgios a esses usurios/ contas/ perfis Em SBDs Relacionais so usados comandos SQL para autorizao e revogao de privilgios
Autorizao de Privilgios em SQL: GRANT
Autorizao com propagao ou sem propagao

Revogao de Privilgios em SQL: REVOKE

Controle de Acesso
Tipos de Privilgios:
Privilgios de Sistema (ou de conta) Privilgios de Objetos

Vises tambm podem ser utilizadas como mecanismo de controle de acesso aos dados
Necessrio quando o controle de acesso envolve predicados sobre os dados

Linguagens Relacionais

Linguagens Relacionais - lgebra Relacional


Linguagem formal de manipulao de dados em modelo relacional Baseado em grande parte em teoria de conjuntos Linguagem procedimental Principais Operaes:
Seleo Projeo Produto Cartesiano Juno Unio Interseco Diferena

Linguagens Relacionais - lgebra Relacional


Operao Seleo () <condio> (<relao>)
<atributo> <op> <atributo> <condio> <atributo> <op> <constante> operao unria condies podem envolver conectores lgicos operao comutativa relao resultante com mesmo grau relao resultante com cardinalidade menor ou igual

Linguagens Relacionais - lgebra Relacional


Operao Projeo (): <lista-atributos>(<relao>)
operao unria relao resultante com mesmo cardinalidade relao resultante com grau menor ou igual operao no comutativa remoo implcita de duplicatas

Operao Renomear (): <relao-renomeada>(<relao>)


operao utilizada para distinguir a utilizao de uma relao duas vezes na mesma consulta

Linguagens Relacionais - lgebra Relacional


Operao Unio ()
(<relao>) (<relao>)
operao comutativa unio de tuplas remoo de duplicatas compatibilidade de unio tabela resultante com cardinalidade maior e mesmo grau

Operao Interseco ()
(<relao>) (<relao>)
operao comutativa unio de tuplas remoo de duplicatas compatibilidade de unio tabela resultante com cardinalidade maior e mesmo grau

Linguagens Relacionais - lgebra Relacional


Operao Diferena (-)
(<relao>) - (<relao>)
operao no comutativa compatibilidade de unio tabela resultante com cardinalidade menor ou igual

Operao Produto Cartesiano ( X )


(<relao>) X (<relao>)
operao no comutativa no necessita compatibilidade de unio tabela resultante com cardinalidade mxn e grau m+n

Linguagens Relacionais - lgebra Relacional


Operao Juno |X|
<condio-juno>

(<relao>) |X| (<relao>)


equivale a produto cartesiano seguido de seleo permite reunir dados de relaes diferentes seguindo critrios da aplicao operao no comutativa tambm conhecida como juno theta ou juno interna (inner join)

Variaes da operao Juno


equi-juno (equi-join) Juno natural (natural join) Juno externa (outer join) esquerda (left outer join) direita (right outer join) esquerda e direita (left tight outer join)

Linguagens Relacionais - SQL


Modos de Operao com SQL
SQL interativa Executada a partir de ferramenta especfica que fornece ambiente de execuo direta de comandos SQL SQL embutida Comandos SQL embutidos em uma linguagem hospedeira como C, JAVA, C++, etc Comandos SQL so delimitados por comandos sinalizadores especficos como EXEC-SQL, END-SQL Comandos sinalizadores depende da linguagem hospedeira (reconhecida pelo pr-compilador) Variveis contidas no programa hospedeiro podem ser referenciadas nos comandos SQL para receber valores retornados do banco de dados ou servir como origem para atualizaes dos dados no banco de dados

Linguagens Relacionais - SQL


TIPOS de SQL
SQL no procedimental
Comandos SQL bsicos (INSERT, UPDATE, DELETE, SELECT) orientados por conjunto de tuplas tratam um conjunto de tuplas de uma ou mais relaes que satisfazem determinados critrios de seleo No inclui comandos para tratamento tupla a tupla

Linguagens Relacionais - SQL


TIPOS de SQL
SQL procedimental
Inclui comandos adicionais para criao de tabelas temporrias (cursor) que permitem recuperao e tratamento tupla a tupla DECLARE CURSOR OPEN FETCH CLOSE Alguns SGBDs criaram verses de SQL procedimental que incluem comandos de linguagens convencionais como comandos de repetio, condio, desvio Exemplo PL-SQL da Oracle

SQL
Padres SQL
Primeiras padronizaes: 1986 (ANSI), 1987 (ISO) 1989 (ISO)
Integridade referencial Null Default Check constraints

1992: SQL2
Criao explcita de schema (CREATE SCHEMA) Criao de domnio (CREATE DOMAIN) Stored Procedures Novos tipos de dados (time e date) Tabelas temporrias Tabelas derivadas da clusula FROM Restrio UNIQUE UNION

SQL
Padres SQL
1999: SQL3
Extenses para O.O (SGBD objeto-relacionais)
Objetos complexos (vdeo, imagem, texto) Hierarquia de tabelas (herana simples) Tipos de dados definidos pelo usurio colees

Expresses regulares de emparelhamento Queries recursivas Gatilhos OLAP

SQL
Padres SQL
2003: SQL4
Composto por nove partes
Parte 1: SQL Framework: Parte 2: SQL Foundation Parte 3: SQL CLI (Call-Level-Interface) Parte 4: SQL-PSM (Persistent Stored Modules) Parte 9: SQL-MED (Management of External Data) Parte 10: SQL-OLB (Object Language Binding) Parte 11: SQL-Schemata Parte 13: SQL-JRT (Java Routines and Types) Parte 14: SQL-XML Partes 5, 6, 7, 8 e 12 no foram aproveitadas

Linguagens Relacionais - SQL


Padres SQL
2003: SQL4
Parte 1: SQL Framework:
Define estrutura do padro e relacionamento entre as partes Apresenta conceitos e definies gerais Define os requisitos de conformidade Atualizaes que vierem a ser feitas nesta parte refletem nas demais partes

Parte 2: SQL Foundation


Parte maior e mais importante Define o ncleo da linguagem Inclui todas as definies da SQL1999 Foundation com as devidas correes

Linguagens Relacionais - SQL


Padres SQL
2003: SQL4
Parte 3: SQL CLI
Define um rotinas padro para invocar dinamicamente SQL a partir de programas de aplicao Consiste em 60 especificaes de rotinas para: Controlar conexes a servidores SQL Alocar e deslocar recursos Executar comandos SQL Controlar terminao de transao Obter informao sobre implementaao Dispensa pr-compilao

Linguagens Relacionais - SQL


Padres SQL
2003: SQL4
Principais novas caractersticas
Novos tipos de dados: BIGINT, MULTISET Extenses a tipos de dados: ARRAY ilimitado Remoo de tipos de dados: BIT, BIT VARYING Gerao de Sequncias (SEQUENCE) Colunas Identidade Colunas geradas (derivadas) Aumento de funcionalidade de CREATE LIKE Tabelas Base criadas a partir de queries Funes que retornam tabelas (TABLE Functions)

Linguagens Relacionais - SQL


Padres SQL
2003: SQL4
Principais novas caractersticas (continuao)
SQL dinmico e SQL-DDL dentro de rotinas (procedures, functions) Novas funes para escalares: LN, EXP, POWER, SQRT, FLOOR, CEILING, WIDTH-BUCKET Novas funes de agregao de um argumento: STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP Novas funes de agregao com dois argumentos: COVAR, CORR, ... Novas funes para tabelas e tabelas particionadas: RANK, ROWNUMBER... Comando DML Merge

Linguagens Relacionais - SQL


SQL-DDL Comandos Principais
CREATE SCHEMA DROP SCHEMA CREATE TABLE ALTER TABLE DROP TABLE CREATE VIEW ALTER VIEW DROP VIEW CREATE INDEX ALTER INDEX DROP INDEX

Linguagens Relacionais - SQL


CREATE TABLE
CREATE TABLE Departamentos (codigo numeric(2) NOT NULL PRIMARY KEY, nome Varchar(30) NOT NULL) CREATE TABLE Cursos (codigo Numeric(3) NOT NULL, nome Varchar(40) NOT NULL, codigoDepartamento Numeric(2) NOT NULL DEFAULT 1, CONSTRAINT PrkCurso PRIMARY KEY (Codigo), CONSTRAINT FrkDepCurso FOREIGN KEY (codigoDepartamento) REFERENCES Departamentos (Codigo) ON DELETE SET DEFAULT ON UPDATE CASCADE)

Linguagens Relacionais - SQL


SQL-DDL: Tratamento de restries
CREATE TABLE Podem ser especificadas aes a serem disparadas quando uma operao causar uma potencial violao atravs de clusulas referencial triggering action ON DELETE e ON UPDATE com opes:
SET DEFAULT SET NULL CASCADE

DROP SCHEMA DROP SCHEMA nome-esquema CASCADE DROP SCHEMA nome-esquema RESTRICT DROP TABLE DROP TABLE nome-tabela CASCADE DROP TABLE nome-tabela RESTRICT

Linguagens Relacionais - SQL


SQL-DDL: Tratamento de restries
ALTER TABLE
Adio de atributo (coluna) ALTER TABLE nome-tabela ADD nome-atributo... Se o atributo no puder ter valor NULL ento deve ser especificado valor default
Exemplo: ALTER TABLE Empregados ADD estCivil char(1) DEFAULT S

Remoo de atributo (coluna) ALTER TABLE nome-tabela DROP nome-atributo Deve ser especificada opo RESTRICT ou CASCADE para tratar restries de integridade referencia
Exemplo: ALTER TABLE Empregados DROP estCivil CASCADE

Linguagens Relacionais - SQL


SQL-DDL: Tratamento de restries
ALTER TABLE
Alterao de atributo (coluna) Adicionar/remover valores default
Exemplo: ALTER TABLE Empregados ALTER estCivil DROP DEFAULT

Adicionar/remover restries
Exemplo: ALTER TABLE Empregados DROP CONSTRAINT deptoFK CASCADE

Linguagens Relacionais - SQL


SQL-DML
INSERT
Acrscimo de mltiplos registros:
INSERT INTO tabdestino [(campo1[, campo2[, ...]])] <comando-select> Exemplo: INSERT INTO Empregados (nome, matricula, salario) SELECT * FROM EmpregadosAntigos;

Acrscimo de registro nico:


INSERT INTO tabdestino [(campo1[, campo2[, ...]])] VALUES (valor1[, valor2[, ...]) Exemplo: INSERT INTO Empregados (nome, matricula, salario) VALUES (Ronaldo Lopes,3523,5000);

Linguagens Relacionais - SQL


SQL-DML
UPDATE
UPDATE tabela SET campo1 = exprValor [,campo2 = exprValor...] WHERE condies Exemplo: UPDATE Pedidos SET QuantiaDoPedido = QuantiaDoPedido * 1.1, Frete = Frete * 1.03 WHERE PasDeDestino = 'UK';

Linguagens Relacionais - SQL


SQL-DML
DELETE
DELETE FROM tabela WHERE condies Exemplo: DELETE FROM Pedidos WHERE PasDeDestino = 'UK';

Linguagens Relacionais - SQL


SQL-DML: Tratamento de restries
DELETE
O tratamento das restries de integridade referencial de tupla(s) de outra(s) tabela(s) que referencia(m) a(s) tupla(s) removida(s) segue o que foi especificado no comando de criao da tabela que referencia.

UPDATE
O tratamento das restries de integridade referencial de tupla(s) de outra(s) tabela(s) que referencia(m) a(s) tupla(s) atualizada(s) segue o que foi especificado no comando de criao da tabela que referencia.

Linguagens Relacionais - SQL


SQL-DQL
SELECT Sintaxe bsica: SELECT <lista-atributos> FROM <lista-tabelas> [WHERE <condies>] [GROUP BY <atributos-grupo>] [HAVING <condies-grupo>] [ORDER BY <lista-atributos-ordenao]

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
Conveno * Tratamento de ambiguidade de nomes Clusula DISTINCT Operaes de conjunto UNION [ALL] INTERSECT [ALL] EXCEPT [ALL] Ordenao ascendente e descendente

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
Comparaes de strings
LIKE Conveno % Conveno _ Conveno \ Concatenao (Conveno || )

Comparaes numricas
Operadores de comparao (<, >, <>, =) Between

Pertinncia de valor de atributo em conjunto (IN, NOT IN) Comparao com NULL (IS NULL, IS NOT NULL)

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
Funes de tratamento de tipos de dados especficos (date, time, strings, timestamp, numeric, etc)
Em geral cada SGBD implementa seu subconjunto particular de funes e procedimentos embora com semnticas similares

Consultas aninhadas (subconsultas)


Verificar se o valor de um ou mais atributos da consulta externa est contido no conjunto de valores retornados por uma consulta interna (SELECT... FROM...WHERE atributo IN/NOT IN (SELECT ...) Comparao de valor de atributo com valor(es) retornados pela subconsulta (SELECT... FROM...WHERE atributo > ALL (SELECT ...)

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
Consultas aninhadas (subconsultas)
Correlacionar atributos da consulta externa com atributos da consulta interna Exemplo (SELECT e.nome FROM empregados AS e WHERE e.mat in (SELECT d.mat FROM Dependentes AS d WHERE d.sexo = e.sexo)

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
EXISTS / NOT EXISTS
Exemplo (SELECT e.nome FROM empregados AS e WHERE EXISTS (SELECT d.mat FROM Dependentes AS d WHERE d.sexo = e.sexo)

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
Tabelas de Juno
Incorporado na SQL2 Permite a incluso de condio de juno diretamente na clusula FROM ao invs de inclu-las na clusula WHERE Facilita a incorporao de variantes de juno (outer join, natural join) Exemplo: SELECT e.nome AS Nome Empregado, d.nome AS Departamento FROM Depto AS d LEFT OUTER JOIN Emp AS e ON d.codigo=e.depto)

Linguagens Relacionais - SQL


SQL-DQL
SELECT Variantes sintticas importantes
Funes agregadas e agrupamento
COUNT SUM MAX MIN AVG AVGP DEV DEVP

Exemplo: SELECT max(sal), min(sal), avg(sal) FROM empregados WHERE sexo = M GROUP BY depto HAVING count(*) > 10;

Linguagens Relacionais - SQL


SQL-DTL
BEGIN (TRANSACTION/WORK) COMMIT ROLLBACK

SQL-DCL
CREATE USER ALTER USER DROP USER GRANT REVOKE CREATE SYNONYM

Linguagens Relacionais - SQL


Padres de Conectividade
API para conectividade com banco de dados Permite que programas em linguagens convencionais enviem instrues SQL atravs de chamadas padronizadas para qualquer banco de dados que disponibilize driver que implemente a API Nesta abordagem, a aplicao, em tempo de execuo:
Especifica qual a fonte de dados a que deseja ter acesso. Faz a vinculao entre a aplicao e a fonte de dados, atravs de um mdulo (driver). O driver converte os formatos de dados e os comandos padronizados para os formatos compreendidos pelo SGBD-alvo.

Linguagens Relacionais - SQL


Padres de Conectividade
Vantagens
No necessrio utilizar vrias linguagens para acesso a dados de diferentes SGBDs Menor exigncia de treinamento dos desenvolvedores Menos erros de programao Mais rpido desenvolvimento Os desenvolvedores no precisam se preocupar com as particularidades dos bancos de dados que iro acessar e trabalhar.

Desvantagens
Necessidade de mais camadas de processamento Desempenho

Linguagens Relacionais - SQL


ODBC (Open Database Connectivity):
Criado no incio da dcada de 1990 pelo SQL Access Group liderado pela Microsoft Atravs de chamadas ODBC em um programa podem ser acessados diferentes bancos de dados sem utilizar as interfaces proprietrias de cada um. Driver para cada SGBD alvo conecta dinamicamente uma biblioteca aplicao Driver mscara a heterogeneidade de SGBD, sistema operacional e protocolo de rede.
Exemplo (Sybase, Windows/NT, TCP/IP driver)

Linguagens Relacionais - SQL


Arquitetura ODBC
Aplicao ODBC driver Driver (SGBD/SO/rede) Fonte de Dados

Linguagens Relacionais - SQL


JDBC (Java Database Connectivity)
API Java para conectar programas escritos em Java com bancos de dados relaconais. Composto por um conjunto de classes e interfaces escritos em Java Padro definido pela Sun Microsystems Permite que fornecedores de solues em bancos de dados, implementem e extendam o padro usando seus prprios drivers JDBC. Permite aos programadores Java conectar-se a bancos de dados e a acess-lo e manipul-lo utilizando SQL.

Linguagens Relacionais - SQL


Arquitetura s JDBC
Aplicao Java JDBC driver manager

Traduo JDBC/nativo Driver Nativo (SGBD)

Traduo JDBC/ODBC ODBC Driver

JDBC Driver (SGBD)

JDBC middleware (SGBDs variados)

DBMS

Вам также может понравиться