Vous êtes sur la page 1sur 63

Bando de Dados Relacional

RDBMS (Relational Database Management System)


Treinar Informtica : Oracle 3/5/2013 1

O que ?

Conceito abstrato que define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um bando de dados.

Treinar Informtica : Oracle

3/5/2013

Viso Padro

Treinar Informtica : Oracle

3/5/2013

Integridade Referencial

Treinar Informtica : Oracle

3/5/2013

Constraints
Not Null, Unique, Primary Key, Foreign Key e Check.

Definies de regras.

Manter a integridade dos dados.

Treinar Informtica : Oracle

3/5/2013

SQL
Linguagem de pesquisa declarativa para banco de dados relacional. Caractersticas inspiradas na lgebra relacional. Padro de banco de dados. Simplicidade e facilidade de uso. Uma consulta SQL especifica a forma do resultado e no o caminho para chegar a ele. Pode ser migrado de plataforma para plataforma sem mudanas estruturais principais.

Treinar Informtica : Oracle

3/5/2013

SQL
Consulta a dados Insero, atualizao e deleo das linhas de uma tabela Criao, substituio, alterao e eliminao de objetos Controle de acesso ao banco de dados e seus objetos Garantia de consistncia e integridade do banco de dados.

Treinar Informtica : Oracle

3/5/2013

Palavras Chaves SQL


DML Linguagem de Manipulao de Dados DDL Linguagem de Definio de Dados DCL Linguagem de Controle de Dados DTL Linguagem de Transao de Dados DQL Linguagem de Consulta de Dados

Treinar Informtica : Oracle

3/5/2013

DDL
Definio de novas tabelas e elementos associados. Os comandos bsicos so: CREATE DROP

Treinar Informtica : Oracle

3/5/2013

Tipos de Colunas
Quando se cria uma tabela necessrio especificar o tipo de dados das colunas e a sua dimenso. Esta determina o comprimento mximo que podem ter os valores nela armazenados.

VARCHAR2 (n) Armazena uma cadeia de caracteres de comprimento varivel. O valor mximo de n so 4000 bytes. O Oracle s guarda o que o utilizador introduzir no preenchendo o que falta para o limite n. Se usarmos BYTE n traduz o nmero de bytes;
Footer Text 3/5/2013 10

Tipos de Colunas
CHAR(n) Caracteres de comprimento fixo n. O valor por omisso 1 sendo o valor mximo 2000. A base de dados ocupa sempre n caracteres pois preenche o que falta com espaos em branco; NUMBER(n,d) Nmero com n digitos sendo d casas dcimais ( direita da virgula);

Footer Text

3/5/2013

11

Tipos de Colunas
DATE Data desde 1 Jan de 4712 AC at 31 de Dez de 9999 DC. Tambm armazenada a hora, minuto e segundo. O calendrio interno da base de dados tem em conta as alteraes de calendrio impostas ao longo do tempo, por exemplo a passagem do calendrio Juliano para Gregoriano em 1582-10-05, onde foram eliminados 10 dias;

Footer Text

3/5/2013

12

Tipos de Colunas
VARCHAR2 surgiu na verso 7 para substituir VARCHAR Se criar uma coluna com o tipo VARCHAR o SGBD converte em VARCHAR2 Quando insere valores do tipo VARCHAR2 o ORACLE no preenche espaos em branco no fim. Isto significa que JOSE e JOSE sero strings diferentes. Se os valores fossem do tipo CHAR o ORACLE acrescentava espaos no fim automaticamente; Quando um valor a introduzir numa coluna excede a sua dimenso a base de dados emite uma mensagem de erro;

Footer Text

3/5/2013

13

DML
Realizado para realizar incluses, consultas, alteraes e excluses de dados presentes em registros. Pode ser executado em diversos registros de diversas tabelas ao mesmo tempo. Os comandos so: INSERT SELECT UPDATE DELETE
Treinar Informtica : Oracle 3/5/2013 14

DCL
Controla os aspectos de autorizao de dados e licenas de usurios para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Os comandos so : GRANT REVOKE

Treinar Informtica : Oracle

3/5/2013

15

DTL
Prprio nome ja diz: controle de transao de dados. Os comandos so: BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) COMMIT ROLLBACK

Treinar Informtica : Oracle

3/5/2013

16

DQL
a mais utilizada Possui apenas um comando : SELECT Esse comando possui vrias clusulas: FROM WHERE GROUP BY HAVING ORDER BY DISTINCT

Treinar Informtica : Oracle

3/5/2013

17

DQL
Operadores lgicos: AND OR NOT Operadores Relacionais: < > <= >=
Treinar Informtica : Oracle 3/5/2013 18

DQL
Operadores Relacionais: = <> BETWEEN LIKE IN

Funes de Agregao: AVG COUNT


Treinar Informtica : Oracle 3/5/2013 19

DQL
Funes de Agregao: SUM MAX MIN

Treinar Informtica : Oracle

3/5/2013

20

DBA (Administrador de Banco de Dados)


Avaliar o hardware do servidor de banco de dados Instalar o Oracle Planejar, criar e abrir banco de dados Backup Controlar usurios Design Recuperao aps falhas Monitorar

Treinar Informtica : Oracle

3/5/2013

21

Arquitetura do Banco de Dados


Arquivos de Controle Arquivos de dados Arquivos de redo log on-line Arquivo de parmetros Arquivo de senha Arquivo de log arquivados

Treinar Informtica : Oracle

3/5/2013

22

Banco de dados objetorelacional (BDOR)


A maior parte dos sistemas gerenciadores de bancos de dados (SGBDs) utilizados baseada no modelo relacional. No entanto, SGBDs baseados em outros modelos tm surgido devido demanda de novas aplicaes. Muitas aplicaes, impulsionadas pela WEB, requererem tcnicas de acesso que melhorem o desempenho e estruturas de dados muito mais complexas que as tabelas relacionais, com diversos tipos adicionais, como imagem e vdeo, fundamentados na tecnologia de orientao a objetos.

Footer Text

3/5/2013

23

Banco de dados objetorelacional (BDOR)


Sistema de gerenciamento de banco de dados semelhante a um banco de dados relacional, porm com um modelo de banco de dados orientado a objetos: objetos, classes e herana so suportados diretamente nos esquemas de banco de dados e na linguagem de consulta. Teve sua origem na combinao de idias dos modelos de dados tradicionais e de linguagens de programao orientada a objetos.

Treinar Informtica : Oracle

3/5/2013

24

Banco de dados objetorelacional (BDOR)


A principal estrutura do modelo objeto-relacional so as tabelas, entretanto, com muito mais recursos do que as tabelas puramente relacionais. Entre esses recursos podemos destacar: definio de tipos pelo usurio; registros e vetores; mtodos e funes; referncias, herana e polimorfismo. So acrescentadas tambm estruturas a linguagens de consulta relacionais, como SQL, para tratar os tipos de dados acrescentados.
Footer Text 3/5/2013 25

Banco de dados objetorelacional (BDOR)


O objetivo preservar os fundamentos relacionais, em particular o acesso declaratrio ao dado, acrescentando novas funcionalidades. Para utilizar os recursos de orientao a objetos a Oracle, a partir da verso 8, implementou diversos conceitos que definem um modelo objetorelacional tais como: tipo objeto, tabela de objetos, etc.

Footer Text

3/5/2013

26

Banco de dados objetorelacional (BDOR)


Em que so utilizados: Objetos complexos so formados por construtores (conjunto, listas, tuplas, registros, colees e arrays) aplicados a objetos simples (inteiros, booleans, strings) Tambm podemos utilizar estes tipos de dados estruturados onde a consulta ao banco de dados precisa ser mais complexa, pois ao invs de acesso a tabela e registros, necessrio o acesso a listas, tuplas, arrays entre outros.

Treinar Informtica : Oracle

3/5/2013

27

Banco de dados objetorelacional (BDOR)


Exemplo de aplicaes complexas: Projetos de engenharia e arquitetura Experincias cientficas Telecomunicaes Sistemas de informaes geogrficas Multimdia

Treinar Informtica : Oracle

3/5/2013

28

Banco de dados objetorelacional (BDOR)


Caractersticas das aplicaes complexas: Transaes de durao mais longa Novos tipos de dados para armazenar imagens ou grandes itens de texto Necessidade de definir operaes especficas de de aplicaes no-padronizadas.

Treinar Informtica : Oracle

3/5/2013

29

Banco de dados objetorelacional (BDOR)


Caractersticas: Cada objeto possui um identificador de objeto ou OID (object identifer), que o torna nico, no usa a linguagem SQL, por isso no h querys, voc busca seus objetos atravs de metodologias predefinidas. Essas metodologias so chamadas de Native Querys. Na diferenciao do modelo relacional e orientado a objeto, ficaria da seguinte maneira:

Treinar Informtica : Oracle

3/5/2013

30

Banco de dados objetorelacional (BDOR)

Treinar Informtica : Oracle

3/5/2013

31

Banco de dados objetorelacional (BDOR)


A forma de acesso aos dados remodelada porque os SGDBs orientados a objetos sugerem novos tipos de dados como sequncia de bits, ponteiros, linhas, nmeros complexos e elementos de dados do tipo array. Para acessar uma array, um modo especial de consulta teria que ser construdo por exemplo:

Treinar Informtica : Oracle

3/5/2013

32

Banco de dados objetorelacional (BDOR)


A consulta realizada retorna o nome dos carros vendidos no ms de fevereiro, representado pela sentena (2) e com quantidade acima de 200 unidades; o ms de fevereiro faz parte de uma array de 12 elementos, representando os meses.

Treinar Informtica : Oracle

3/5/2013

33

Banco de dados objetorelacional (BDOR)


Oracle 11g Um SGBD Objeto Relacional: Mistura banco de dados relacional com conceitos de orientao a objetos. Usa SQL no sistema Objeto Relacional. Existe no Oracle o Object Type que um tipo definido pelo usurio na qual equivale ao de classe em POO (Programao Orientada a Objetos) . O Object Type captura tanto a estrutura como o comportamento de um objeto. A sintaxe segue o exemplo:

Treinar Informtica : Oracle

3/5/2013

34

Banco de dados objetorelacional (BDOR)

Treinar Informtica : Oracle

3/5/2013

35

Banco de dados objetorelacional (BDOR)


Vantagens: Capacidade de Armazenamento de Objetos Poder de processamento de requisies No possuem chaves primrias nem estrangeiras, aumentando o desempenho das consultas e processos Os objetos se comunicam entre si atravs de mensagens

Treinar Informtica : Oracle

3/5/2013

36

Banco de dados objetorelacional (BDOR)


Desvantagens: Falta de padronizao das linguagens de manipulao dos dados Alto custo de aquisio das novas tecnologias Curva de aprendizagem e adaptao ao novo ambiente demorada.

Treinar Informtica : Oracle

3/5/2013

37

Diferentes Meios de Armazenar Dados


Os dispositivos de armazenamento foram um meio tecnolgico inventado para trazer comodidade e mobilidade para as pessoas. Os dispositivos podem reter informaes, processar informaes ou ambos. Como exemplos de dispositivos de armazenamento por meio pticos temos os CDs, DVDs e Blu-Ray. Como exemplos de dispositivos de armazenamento por meio eletrnico temos os pen drives e cartes de memria.

Treinar Informtica : Oracle

3/5/2013

38

Modelo de Dados
um subconjunto do modelo de implementao que descreve a representao lgica e fsica dos dados persistentes no sistema. Abrange qualquer comportamento definido no banco de dados, como procedimentos armazenados, triggers, restries etc. O designer de banco de dados responsvel pela integridade do modelo de dados, garantindo que ele esteja correto, consistente e compreensvel como um todo.

Treinar Informtica : Oracle

3/5/2013

39

Modelo de Dados
Precisa ser adaptado semntica do banco de dados, que pode variar um pouco entre RDBMSes. Os sistemas de Bancos de Dados de Objetos possuem semnticas bem diferentes.

Treinar Informtica : Oracle

3/5/2013

40

Joins
Significa Unir ou Unio Utilizamos quando precisamos buscar dados em outras tabelas desde que satisfaa as condiespara isso. Funciona em qualquer banco de dados relacional. Existem 3 tipos de Joins: LEFT RIGHT INNER

Treinar Informtica : Oracle

3/5/2013

41

Joins
LEFT JOIN o banco de dados ir analisar a estrutura da tabela da direita e comparar com a tabela da esquerda .

Treinar Informtica : Oracle

3/5/2013

42

Joins
Na primeira situao temos o Left Join, a seta est apontando para a tabela FUNCIONARIOS simbolizando que a precedncia da tabela da esquerda. RIGHT JOIN Tambm conhecido apenas por JOIN, dependncia da tabela da Direita. INNER JOIN Oberva se existem registros combinados em ambas as tabelas, ou seja, para que um registro seja includo na lista de resultados, o campo de ligao entre as duas tabelas deve satisfazer as condies de ambas.
Treinar Informtica : Oracle 3/5/2013 43

Functions
A function usada para fazer um processamento e retornar o resultado deste processamento, ou seja, uma function obrigatoriamente precisa retornar um valor. Uma function pode ser de nica linha ou de vrias linhas. preciso criar um tipo para que nossa function saiba o que retornar, ja que dentro de um tipo temos um ou vrios atributos. Esses atributos so os valores que vamos retornar na nossa function.

Treinar Informtica : Oracle

3/5/2013

44

Functions
Exemplo function com nica linha : CREATE OR REPLACE FUNCTION DIA_SEMANA (DATA DATE) RETURN DIA AS VARCHAR2(20); BEGIN SELECT DIA_SEM INTO RESULT FROM TABELA_DIAS_ANO WHERE DATA_ANO = DATA RETURN; END;
Treinar Informtica : Oracle 3/5/2013 45

Functions
Exemplo function vrios dados. (Script exemplo aula)

Treinar Informtica : Oracle

3/5/2013

46

Funes de Caracter
Sua forma de utilizao bem simples: s precisa saber o nome da funo que precisa trabalhar e os argumentos que utilizar.

Falaremos de algumas funes de caracter conhecidas e para isso usaremos a tabela de teste DUAL do ORACLE. A tabela DUAL permite ser utilzada por vrios usurios do banco. ela contm apenas uma linha e uma coluna. Este objeto muito utilizado para fazer testes.
Treinar Informtica : Oracle 3/5/2013 47

Funes de Caracter
Funo LOWER Retorna a informao do campo com caixa baixa(letras minsculas). Funo UPPER Retorna a informao do campo com caixa baixa(letras minsculas). Funo INITCAP Retorna o primeiro caractere em maisculo. Funo CONCAT Concatena campos
Treinar Informtica : Oracle 3/5/2013 48

Funes de Caracter
Funo SUBSTR Conta a partir do X caractere y caracteres Substr(campo,X,Y) X posio Y quantidade que vai contar Funo LPAD Joga o contedo disponvel do campo para esquerda SELECT LPAD(SAL,10,*) FROM EMP2; LPAD(Campo,nmero , caractere);

Treinar Informtica : Oracle

3/5/2013

49

Funes de Caracter
Funo RPAD Joga o contedo disponvel do campo para direita Funo TRIM Tira os espaos do campo Funo REPLACE Analisa a string de caracteres mencionada na funo e substitui por outra string que foi especificada; SELECT REPLACE(JACK AND JUE,J,BL) FROM DUAL;

Treinar Informtica : Oracle

3/5/2013

50

Funes de Data
Com o Oracle possvel obter uma srie de resultados a partir de uma ou mais datas, como por exemplo verificar o ltimo dia do ms ou verificar a quantidade de meses entre duas datas, etc. Data atual do sistema: SYSDATE Remover meses de uma data: ADD_MONTHS(SYSDATE, -1) Adicionar meses de uma data: ADD_MONTHS(SYSDATE, +1) Buscar o ltimo dia do ms: LAST_DAY(SYSDATE) Primeiro dia do ms: TRUNC(SYSDATE, MONTH)
Treinar Informtica : Oracle 3/5/2013 51

Funes de Data
Quantidade de meses entre duas datas: MONTHS_BETWEEN(SYSDATE, 27/07/1982) Primeiro dia do ano: TRUNC(SYSDATE, YEAR) Dias da semana: DECODE( TO_NUMBER( TO_CHAR (SYSDATE, D) ) ,1, domingo ,2, segunda-feira ,3, tera-feira ,4, quarta-feira ,5, quinta-feira ,6, sexta-feira ,7,sbado )
Treinar Informtica : Oracle 3/5/2013 52

Funes para Converso de Tipos


TO_DATE(string) TO_CHAR(data) TO_CHAR(nmero) TO_NUMBER(string)

Treinar Informtica : Oracle

3/5/2013

53

Outras Funes
INSTR Pesquisa a posio de um caracter dentro de uma string. A funo retorna um inteiro indicando a posio do primeiro caractere localizado na string. SELECT INSTR(THIS IS A TEST, IS) FROM DUAL; TRANSLATE Substitui uma seqncia de caracteres em uma string com um outro conjunto de caracteres. No entanto, importante destacar que ele substitui um nico caractere de cada vez. SELECT TRANSLATE(Mississippi, s, S) FROM dual;
Treinar Informtica : Oracle 3/5/2013 54

Outras Funes
MEDIAN A ideia da mediana separar a distribuio em duas partes iguais. Para calcular essa medida, inicialmente os dados devem ser ordenados. A mediana corresponder ao ponto do meio da distribuio. Em nosso exemplo, se ordenarmos as punies de forma ascendente, teremos o seguinte conjunto de valores: 1, 2, 3, 3, 4, 4, 4. Nesse caso, o valor 3 a mediana, pois ele quem separa a distribuio em duas partes (1, 2, 3 e 4 , 4, 4). No SGBD Oracle, a funo MEDIAN (disponvel a partir do Oracle 10) responsvel por realizar o clculo da mediana.
Treinar Informtica : Oracle 3/5/2013 55

Outras Funes
MODA A moda a medida de tendncia central que consiste no valor mais frequente em uma distribuio. Para obter a moda da varivel PUNICAO no SQL do Oracle, basta utilizar a funo STATS_MODE.

O resultado 4, pois, a maioria das punies (3 casos) foi de 4 jogos para os jogadores expulsos.
Footer Text 3/5/2013 56

Outras Funes
GREATEST Funo que ir retornar o maior valor de uma lista. No confundir com MAX. greatest(2, 5, 12, 3) -> retorna 12 greatest(2, 5, 12, 3) -> retorna 5 greatest(apples, oranges, bananas) -> retorna oranges greatest(apples, applis, applas) -> retorna applis

Treinar Informtica : Oracle

3/5/2013

57

Outras Funes
LEAST Esta funo utilizada para retornar o menor valor de uma lista. No confundir que MIN. least(2, 5, 12, 3) -> retorna 2 least(apples, oranges, bananas) -> retorna apples least(apples, applis, applas) -> retorna applas least(apples, applis, applas, null) -> retorna NULL

Treinar Informtica : Oracle

3/5/2013

58

Union (all), Intersect e Minus


Essas quatro funcionalidade ( UNION ALL um caso a parte ) so primordiais para obter fragmentos de resultados. Ao invs de sobrecarregar sua query com diversas condies e controles tente utilizar essas funcionalidades. UNION Agrega o resultado da query subsequente a query anterior, EX: SELECT TABLE_NAME FROM USER_TABLES UNION SELECT TABLE_NAME FROM ALL_TABLES Ela retornar todas as tabelas do usuario e todas as tabelas do sistema, porm no repetir.
Treinar Informtica : Oracle 3/5/2013 59

Union (all), Intersect e Minus


Se voce quiser trazer tudo, mesmo que repita, use: SELECT TABLE_NAME FROM USER_TABLES UNION ALL SELECT TABLE_NAME FROM ALL_TABLES A query acima trar as tabelas de USER_TABLES e tambm de ALL_TABLES repetindo caso seja necessrio.

Treinar Informtica : Oracle

3/5/2013

60

Union (all), Intersect e Minus


INTERSECT Traz a diferena entre dois conjuntos de dados. Digamos que voce queira os registros que existam em uma query e NECESSARIAMENTE no existam na outra. ( e vice-versa ) SELECT TABLE_NAME FROM USER_TABLES INTERSECT SELECT TABLE_NAME FROM ALL_TABLES Isso trar todas as tabelas do usurio que no estejam em ALL_TABLES ( que no caso 0 porque todas as tabelas esto l ) e tambm trar todas as tabelas que tenham na ALL_TABLES e no na USER_TABLES. Podemos resumir o INTERSECT como: Traz todos os registros que se repetem nas sentenas.
Treinar Informtica : Oracle 3/5/2013 61

Union (all), Intersect e Minus


MINUS Traz todos os registros da primeira consulta MENOS ( MINUS ) os registros da segunda consulta. (ele tambm ignora os repetidos) SELECT TABLE_NAME FROM USER_TABLES MINUS SELECT TABLE_NAME FROM ALL_TABLES O resultado ser vazio. Pois todos os registros da primeira query esto na segunda.

Treinar Informtica : Oracle

3/5/2013

62

Truncate
O comando TRUNCATE como se fosse um DELETE (sem clusula Where) com COMMIT implcito, ou seja, ele elimina todas as linhas da tabela, deixando apenas sua estrutura e, NOTA IMPORTANTE, sem opo de ROLLBACK. -- Executa um TRUNCATE (Delete+Commit implcito) na tabela truncate table teste;

Footer Text

3/5/2013

63

Vous aimerez peut-être aussi