©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.

Slides:



Advertisements
Apresentações semelhantes
Estudo de Caso, modelo Oracle 10g
Advertisements

Banco de Dados Prof. Antonio.
Triggers Renata Viegas.
Banco de Dados SQL Stored Procedures
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Exemplo dos Internamentos
©Silberschatz, Korth and Sudarshan (modificado)1Database System Concepts result := {R}; done := false; calcular F+; while (not done) do if (há um esquema.
Prof. Heloise Manica Paris Teixeira
Introdução a Informática
Sincronização de Processos (5) - Monitores -
Tecnologia para Web JavaScript
O Portal do Estudante de Computação
Paradigmas de programação
Programação Orientada a Objetos em Delphi
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
I- Introdução Motivação.
©Silberschatz, Korth and Sudarshan (modificado)5.1.1Database System Concepts Capítulo 5: Outras linguagens Query-by-Example (QBE) Datalog.
PL/SQL, Procedures e Funções
Capítulo 6: Integridade e Segurança
Design Patterns / Acesso ao banco de dados (java.sql)
Capítulo 3: Modelo Relacional
Equipe de monitoria Aula prática 4
Capítulo 7: Design de Bases de Dados
Verificação de Tipos e Escopos
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Professor: Márcio Amador
Ambiente de Execução - Rotinas
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Conceitos Programas Programação Linguagens de Programação SQL.
Capítulo 4: SQL avançada
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Programação e Aplicações Gráficas
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
SCC Bancos de Dados e Suas Aplicações
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
©Silberschatz, Korth and Sudarshan (Modificado)1.1Database System Concepts Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados.
©Silberschatz, Korth and Sudarshan (modificado)9.1.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Critérios de Avaliação das Linguagens de Programação
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
CASE WHEN THEN ELSE END Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
©Silberschatz, Korth and Sudarshan (modificado)9.1.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2] Monitoria GDI André Braga, Daniel Penaforte, Domingos Ribeiro, João Pascoal, Maria Carolina.
7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e.
©Silberschatz, Korth and Sudarshan (modificado)10.2.1Database System Concepts Capítulo 10: XML XML para transferência de dados Estrutura hierárquica do.
Linguagem BD + capacidades OO qVariante da representação OO das encomendas EncomTipo = RECORDOF( e#: int, inclui: SETOF( IQTipo ), cliente: ClienteTipo.
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
©Silberschatz, Korth and Sudarshan (Modificado)3.4.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
©Silberschatz, Korth and Sudarshan (modificado)7.4.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Tipos e Subtipos CREATE TYPE Pessoa_ty AS OBJECT ( cpf NUMBER, nome VARCHAR2(30), endereço VARCHAR2(100)) NOT FINAL; CRIANDO SUBTIPOS CREATE TYPE Estudante_ty.
©Silberschatz, Korth and Sudarshan (modificado)7.1.1Database System Concepts Capítulo 7: Design de Bases de Dados Objectivos com Design de Bases de Dados.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Módulo II Capítulo 1: Orientação a Objetos
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
©Silberschatz, Korth and Sudarshan (Modificado)3.2.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante.
© 2013 IST Bases de Dados 2012/2013 Triggers e funções/procedimentos e em MySQL Helena Galhardas.
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Transcrição da apresentação:

©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos Criação de valores complexos e de objectos Funções, procedimentos e métodos em SQL Comparação entre os vários modelos

©Silberschatz, Korth and Sudarshan (modificado)9.2.2Database System Concepts Funções e Procedimentos O SQL:1999 suporta funções e procedimentos  As funções e procedimentos podem ser escritas directamente em SQL, ou em linguagens de programação externas (e.g. PL/SQL).  Alguns sistemas de bases de dados (entre eles o Oracle) permitem definir funções que devolvem tabelas Grande parte dos sistemas de bases de dados têm linguagens proprietárias onde se podem definir funções e procedimentos, e que diferem bastante do standard SQL:1999 No Oracle podem-se criar funções e procedimentos através da linguagem PL/SQL, ou directamente na base de dados.

©Silberschatz, Korth and Sudarshan (modificado)9.2.3Database System Concepts Funções SQL Definir uma função que devolve (no conjunto de relações na 4NF para livros-flat) o número de autores de um dado livro: create function conta-autores(nome varchar(20)) returns integer begin declare a_count integer; select count(autor) into a_count from autores where autores.título=nome; return a_count; end Quais os livros que têm mais que um autor? select título from livros-flat where conta-autores(título)> 1

©Silberschatz, Korth and Sudarshan (modificado)9.2.4Database System Concepts Métodos SQL Os métodos podem ser vistos como funções associadas a tipos estruturados  Têm um primeiro parâmetro (implícito) chamado self que “aponta” para o valor do tipo estruturado para o qual o método é chamado  O código do método pode-se referir aos atributos do tipo estruturado usando a variável self  E.g. self.a

©Silberschatz, Korth and Sudarshan (modificado)9.2.5Database System Concepts Funções e procedimentos SQL A função conta-autores poderia também ser escrita como um procedimento: create procedure conta-autores-proc(in nome varchar(20), out a_count integer) begin select count(autor) into a_count from autores where autores.título=nome; end; Os procedimentos podem ser chamados dentro de outros procedimentos SQL, ou de linguagens SQL embedded ou proprietárias.  E.g. num procedimento SQL declare a_count integer; call conta-autores-proc (`Database systems Concepts’, a_count); O SQL:1999 permite que haja mais que uma função ou procedimento com o mesmo nome, desde que o número de argumentos (ou, pelo menos, os seus tipos) sejam diferentes

©Silberschatz, Korth and Sudarshan (modificado)9.2.6Database System Concepts Funções e procedimentos externos O SQL:1999 permita o uso de funções e procedimentos escritos noutras linguagens (e.g. C ou C++) A declaração de funções e procedimentos externos faz-se da seguinte forma: create procedure conta-autores-proc(in nome varchar(20), out count integer) language C external name’ /usr/avi/bin/conta-autores-proc’ create function conta-autores(nome varchar(20)) returns integer language C external name ‘/usr/avi/bin/conta-autores’

©Silberschatz, Korth and Sudarshan (modificado)9.2.7Database System Concepts Funções e procedimentos externos (Cont.) Vantagens:  Mais eficiente para muitas operações  Mais poder expressivo Desvantagens  A código que implementa as rotinas externas pode ter que ser carregado no sistema de bases de dados e executado no espaço de endereços deste  risco de corromper acidentalmente a estrutura da base de dados  risco de segurança dos dados  Há alternativas que garante segurança (à custa, por vezes, da deterioração da performance)  A execução directa no sistema de bases de dados só é feita se a eficiência for bem mais importante que a segurança

©Silberschatz, Korth and Sudarshan (modificado)9.2.8Database System Concepts Segurança para rotinas externas Para lidar com estes problemas de segurança  Usar técnicas de sandbox  i.e. usar linguagem segura como o Java, que não permite o acesso a outras parte do código da base de dados  Ou executar rotinas externas em processo separado, sem acesso à memória usada por outros processos do sistema de bases de dados  Os parâmetro e resultados são passados via comunicação entre processos Ambas as alternativas têm custos de performance

©Silberschatz, Korth and Sudarshan (modificado)9.2.9Database System Concepts Construtores procedimentais O SQL:1999 suporta uma grande variedade de construtores procedimentais  O Oracle suporta aqueles que existem no PL/SQL Expressões com whiles e repeats declare n integer default 0; while n < 10 do set n = n+1; end while; repeat set n = n – 1; until n = 0; end repeat Em Oracle, em vez de set var =… usa-se var :=…

©Silberschatz, Korth and Sudarshan (modificado)9.2.10Database System Concepts Construtores procedimentais (Cont.) Ciclos  Iterações sobre o resultado de perguntas  E.g. soma de todos os saldos da agência Perryridge declare n integer default 0; for r as select balance from account where branch-name = ‘Perryridge’ do set n = n + r.balance; end for

©Silberschatz, Korth and Sudarshan (modificado)9.2.11Database System Concepts Construtores procedimentais (cont.) Expressões condicionais (if-then-else) E.g. Soma dos saldos por categorias de contas (com saldo 5000) if r.balance < 1000 then set l = l + r.balance elseif r.balance =< 5000 then set m = m + r.balance else set h = h + r.balance end if Assinalar condições de excepção e erros, e declaração de tratamento de excepções declare out_of_stock condition; declare exit handler for out_of_stock ; begin ….. signal out-of-stock; end  Neste exemplo o tratamento da excepção é exit – sai do bloco begin…end No Oracle em vez de signal usa-se raise

©Silberschatz, Korth and Sudarshan (modificado)9.2.12Database System Concepts Comparação entre os vários sistemas Sistemas relacionais  Simplicidade no tipo de dados, linguagens declarativa para perguntas, boa segurança. Linguagens persistentes  Tipos de dados complexos, fácil integração com linguagens de programação, eficientes. Sistemas Objecto-relacional  Tipos de dados complexos, linguagens declarativa para perguntas, boa segurança. Nota: Os sistemas reais, esbatem um pouco estas fronteiras.  E.g. linguagens persistentes que funcionem como wrapper sobre uma base de dados relacional, embora permitam tipos de dados complexos e facilidade de integração com linguagens imperativas, nem sempre são muito eficientes…