Seminário S2i: Banco de Dados - MySQL e PostgreSQL

Tamanho: px
Começar a partir da página:

Download "Seminário S2i: Banco de Dados - MySQL e PostgreSQL"

Transcrição

1 Seminário S2i: Banco de Dados - MySQL e PostgreSQL Marcelo Moraes Minasi Florianópolis, 26 de abril de Lista de Tabelas 1 Tabela do fornecedor Tabela das peças Tabela do relacionamento entre fornecedores e peças Dependências: um caso errado e outro correto Tabela do fornecedor Tabela da variável SEGUNDA e FP Tabela da variável FC e CS Lista de Figuras 1 Componentes de um sistema de banco de dados Relacionamento como entidade Primeira ilustração da arquitetura de três níveis Segunda ilustração da arquitetura de três níveis Tela após a simples execução de um cliente SQL e seu status Benchmark de banco de dados: páginas da web retornadas por segundo Benchmark de banco de dados: as respostas mais rápidas Códigos 1 O banco de dados de fornecedores e peças (definição dos dados) Exemplo de domínios usando DOMAIN Exemplo de falha de verificação de tipo em domínios Exemplo de restrição usando SELECT Exemplo de projeção usando SELECT Exemplo de projeção simplificada usando SELECT Exemplo de junção usando SELECT Exemplo de INSERT Exemplo de UPDATE Exemplo de DELETE Exemplo de CREATE VIEW Exemplo de uma consulta sobre uma VIEW Exemplo de eliminação de registro na VIEW e suas implicações na tabela real Exemplo de SQL Embutida com API para Java Exemplo de SQL Embutida com API para C

2 Sumário 1 Introdução Instalação Conceituação básica 3 3 Projeto Arquitetura Formas normais SQL Operações de definição Operações de manipulação de dados Operações de Atualização Sumário das instruções SQL Exemplo 15 6 APIs - Application Program Interfaces Java C Estudo comparativo entre MySQL e PostgreSQL 18

3 1 Introdução Esse documento foi fortemente baseado na referência [C. 00]. Tenta-se dar uma boa base dos conceitos iniciais envolvendo bando de dados e do padrão SQL, mostrando-se, no final, um exemplo, uma simples comparação (benchmark) envolvendo alguns sistemas de bancos de dados e algumas APIs - application program interface. Um interessante trabalho posterior seria algumas ferramentas gráficas para construção de um banco de dados e uma melhor comparação de alguns sistemas de bancos de dados, como MySQL, PostreSQL, etc. 1.1 Instalação Assume-se aqui que o leitor conseguiu instalar perfeitamente um servidor de banco de dados onde possa criar bancos e modificá-los, como também executar buscas exemplificadas nesse documento através de query da SQL. Como a instalação varia conforme o sistema operacional, indica-se aqui apenas alguns ponteiros para páginas de instalação de dois dos mais usados programas para sistemas de gerenciamento de banco de dados: MySQL [MySb] na referência [MySa] e PostgreSQL em [Pos]. Outra referência interessante para instalação do MySQL [MySb] é: /c/a/mysql/mysql-installation-and-configuration/. Após a instalação, algumas rotinas ainda precisam ser executadas, para maiores detalhes, veja o ponteiro: post-installation.html. 2 Conceituação básica Sistema de Banco de Dados é simplesmente um sistema computadorizado de armazenamento de registros, composto basicamente por quatro partes: dados (banco de dados), software (sistema de gerenciamento do banco de dados), hardware (armazenamento físico) e usuários (programadores de aplicação, usuários finais e DBA - Administrador). Tais registros são as linhas de uma tabela, cujas colunas são os dados. Essa tabela é um arquivo computadorizado. Figura 1: Componentes de um sistema de banco de dados. Um banco de dados é uma coleção de dados persistentes (não que eles durem para sempre, mas diferem de entradas, saídas, etc.) utilizada pelos sistemas de aplicação.

4 2 CONCEITUAÇÃO BÁSICA 4 Sua utilização possui as seguintes vantagens: compartilhamento de dados, redundância controlada (reduzida), inconsistência controlada, suporte a transações (operações atômicas: tudo ou nada, ou atualiza todas as tabelas necessárias, ou nenhuma; que em conjunto com o log implica consistência), integridade (restrições de integridade, por exemplo, idade 0), maior segurança (senhas), aplicações independente de dados, etc. Uma tabela (variável de relação) contém os dados relativos a um conjunto de entidades idênticas (livro, tema, leitor e requisição). Cada linha (tuplo) caracteriza uma entidade desse conjunto. Cada coluna (atributo) representa uma característica dessa entidade. Cada tabela apresenta um identificador único, chamado de chave primária. Nem sempre é vantagem acrescentar mais um campo designado a ser essa chave (como uma numeração seqüencial e cíclica), pois essa pode ser limitada pelo tamanho do tipo de dado desse campo. Assim, ela pode ser constituída de vários dados agrupados da tabela. Por exemplo, o BD da Eletrosul apresenta de registros mensais! As entidades são composta por registros, que são instâncias daquele tipo, por exemplo: a entidade carro pode possuir os registros carroa, carrob, Monza etc. Além de entidades, normalmente num banco de dados, haverá relacionamentos entre entidades, que segundo o paradigma relacional, também são representadas em tabelas. Observe a figura [2]. Isso será melhor explicado mais abaixo. A seguir, apresenta-se alguns conceitos básicos no contexto de banco de dados: Chave primária é um identificador único para cada tuplo de uma tabela. Cada tabela deve ter uma chave primária. Uma chave primária pode ser constituída por um ou mais atributos. Chave estrangeira é a utilização da chave primária numa outra tabela para se poder criar um relacionamento. Transação é uma unidade lógica de trabalho (atômicas). Figura 2: Relacionamento como entidade. #Fornecedor NomeF 1 A 2 B Tabela 1: Tabela do fornecedor. #Peça NomeP 1 Parafuso 2 Prego Tabela 2: Tabela das peças. Bancos de dados relacionais são sistemas de banco de dados baseados em uma fundamentação normal (teórica) chamada de modelo relacional de dados, que apresenta três aspectos: Aspecto estrutural: os dados são representados por tabelas, e só tabelas - propriedade de fechamento: a saída de uma operação é também uma tabela, o que garante que a saída de uma operação pode ser a entrada de outra.

5 #Peça #Fornecedor Qtdade Tabela 3: Tabela do relacionamento entre fornecedores e peças. Aspecto de integridade: essas tabelas satisfazem a certas condições de integridade; Aspecto manipulativo: os operadores disponívies para manipular tabelas derivam umas de outras - os três mais importantes são: Restrição (DEPTOs nos quais ORÇAMENTO > R$8 milhões), Projeção (DEPTOs sobre #DEPTO, ORÇAMENTO) e Junção (DEPTOs e EMPREGADOs sobre #DEPTO). Aqueles registros devem sofrer algum tipo de operação em algum momento, como: Acrescentar novos arquivos (CREATE TABLE); Inserir novos dados em arquivos (INSERT); Buscar (SELECT), alterar (UPDATE) e eliminar dados em arquivos existentes (DELETE). Esses exemplos são todos expressos em uma linguagem chamada SQL. Ela será melhor explicada mais abaixo [4]. 3 Projeto 3.1 Arquitetura Geralmente, o projeto de um BD se dá em três níveis, como observado nas figuras [3] e [4]: 1. Interno (físico): como os dados são fisicamente armazenados (número de bytes de cada campo, etc.); 2. Externo (lógico do usuário): como os dados são vistos por cada usuário individualmente. CREATE VIEW teste AS (EMP WHERE SALÁRIO > 3K) { #EMP, NOMEEMP, SALÁRIO } ; 3. Conceitual (lógico comunitário): intermediário entre os dois. Na concepção de um BD, tanto a Linguagem de definição de dados (DDL), como ilustrado no código [1], como a linguagem de manipulação de dados (DML) são transparentes para o usuário. De um ponto de vista de mais alto nível, pode ser considerado como uma arquitetura cliente/servidor. 3.2 Formas normais O assunto de normalização é apenas uma formalização de uma idéia simples e muito usada na prática. Idéia que consiste em fazer um projeto de banco de dados seguindo o paradigma um fato em um lugar, isto é, evitar redundância. Além disso, a normalização nos ajuda a estruturar o banco de dados de forma a tornar mais fácil as atualizações de uma única tupla do que seria caso esse banco não estivesse normalizado.

6 3 PROJETO 6 1 TYPE #F... ; 2 TYPE NOME... ; 3 TYPE #P... ; 4 TYPE QTD... ; 6 VAR F BASE RELATION 7 { #F #Fornecedor, 8 NOME NomeF } 9 PRIMARY KEY { # Fornecedores } ; 11 VAR P BASE RELATION 12 { #P #Peca, 13 NOME NomeP } 14 PRIMARY KEY { # Peca } ; 16 VAR FP BASE RELATION 17 { #F #Fornecedor, 18 #P #Peca, 19 QTD Qtdade } 20 PRIMARY KEY {# Fornecedor, # Peca } 21 FOREIGN KEY { # Fornecedor } REFERENCES F 22 FOREIGN KEY { # Peca } REFERENCES P ; Código 1: O banco de dados de fornecedores e peças (definição dos dados). Algumas variáveis poderiam, mesmo estando normalizadas - no sentido do parágrafo anterior - possuírem propriedades indesejáveis. É justamente nesse sentido que vêm os princípios de normalização avançada, ou formas normais. Esses princípios nos permitem reconhecer esses casos e substituir essas variáveis por outras mais desejáveis de algum modo. Dizemos que uma variável está em uma forma normal se ela satisfaz a um certo conjunto prescrito de condições. Por exemplo, dizemos que uma variável de relação - que modela um relacionamento - está na segunda forma normal (2FN) se, e somente se, ela está em 1FN e também satisfaz uma outra determinada condição, descrita mais abaixo em 3.2. Numerosas formas normais foram definidas por volta de As três primeiras por Codd em [E. 72]. Mais tarde, Boyce e Codd definiram também uma outra terceira forma normal, mais abrangente, conhecida como forma normal de Boyce/Codd (FNBC). Subsequentemente, Fagin definiu ainda a quarta e a quinta formas normais. A referência [E. 72] definiu também um procedimento de normalização, através do qual uma variável de relação que está em alguma forma normal específica pode ser substituída por um conjunto de variáveis de relação em alguma forma mais desejada. Esse procedimento é reversível, o que significa que o processo de normalização preserva informações. Embora existam outras formas normais além dessas seis, esse documento abrangerá apenas as três primeiras, visto que a implementação de um banco de dados projetado de forma que suas variáveis estejam na 3FN é uma boa solução de compromisso entre a complexidade dos procedimentos de normalização subsequentes e o nível de características desejadas obtidas (baixa redundância, integridade, etc.). O processo de normalização consiste em decompor uma variável de relação em outras variáveis mais desejadas. Esse processo deve ser necessariamente ser perdas, i. e. reversível.

7 3 PROJETO 7 Figura 3: Primeira ilustração da arquitetura de três níveis. Figura 4: Segunda ilustração da arquitetura de três níveis. Para que uma decomposição 1 sem perdas seja realizada, e assim seja possível recompor 2 o conjunto de informações, precisa-se respeitar o conceito de dependência funcional descrito a seguir. Para entender melhor a importância do conceito de dependência funcional, imagine o seguinte problema: se R1 e R2 são projeções de alguma variável de relação R, e se R1 e R2 em conjunto incluem todos os atributos de R, que condições devem ser satisfeitas para garantir que a junção de R1 e R2 nos dará de volta a variável de relação original R? Ver exemplo na tabela [4] abaixo. É aqui que entram as dependências funcionais. Seja R uma variável de relação, e sejam X e Y subconjuntos arbitrários do conjunto de atributos de R. Então, dizemos que Y é funcionalmente dependente de X em símbolos, X Y, ( X seta Y ), se e somente se em todo valor válido de R, cada valor X tem associado a ele exatamente um valor Y. Em outras palavras, em todo valor possível válido de R, sempre que 1 O operador da decomposição na álgebra relacional é, na verdade, o de projeção. 2 O operador da recomposição na álgebra relacional é, na verdade, o de junção.

8 3 PROJETO 8 #Fornecedor STATUS CIDADE F3 30 Paris F5 30 Atenas Caso correto #Fornecedor STATUS #Fornecedor CIDADE F3 30 F3 Paris F5 30 F5 Atenas Caso errado #Fornecedor STATUS STATUS CIDADE F Paris F Atenas Tabela 4: Dependências: um caso errado e outro correto. duas tuplas concordam sobre seu valor X, elas concordam também sobre seu valor Y. Todo conjunto de DFs dependências funcionais é equivalente a pelo menos um conjunto irredutível. Se I é um conjunto irredutível equivalente a S, a imposição das DFs em I imporá automaticamente as DFs em S. Defini-se um conjunto S de DFs como irredutível se e somente se: 1. O lado direito (o dependente) de cada DF em S contém apenas um atributo; 2. O lado esquerdo (o determinante) de cada DF em S é por sua vez irredutível - significando que nenhum atributo pode ser descartado do determinante sem converter S em algum conjunto não equivalente a S; 3. Nenhuma DF em S pode ser descartada de S sem converter S em em algum conjunto não equivalente a S. Existem Diagramas DF que representam convenientemente essas dependências. Isso é interessante porque as DFs possuem uma noção semântica, cuja interpretação só depende do projetista. Por exemplo, #F CIDADE significa que cada fornecedor está localizado em exatamente uma cidade. Apenas para se ter uma noção do ponto que se deseja atingir, descreve-se informalmente o que seria a terceira forma normal (3FN). Terceira forma normal: uma variável está na 3FN se e somente se os atributos não-chaves (qualquer atributo que não participa da chave-primária da variável de relação) são: Mutuamente independentes, i. e., se nenhum deles é funcionalmente dependentes de qualquer combinação dos outros; Irredutivelmente dependentes da chave primária. O fato de dois ou mais atributos serem mutuamente independentes quer dizer que cada um deles pode ser atualizado independentemente dos demais. Descreve-se a seguir o processo de normalização. Antes, a definição da primeira forma normal: Primeira forma normal: uma variável de relação está em 1FN se, e somente se, em todo valor válido dessa variável de relação, cada tupla contém exatamente um valor para cada atributo.

9 3 PROJETO 9 Por exemplo: PRIMEIRA { #F, STATUS, #P, QDE, CIDADE } PRIMARY KEY { #F, #P } ; #F STATUS CIDADE #P QDE F1 20 Londres P1 300 F1 20 Londres P2 200 F1 20 Londres P3 400 F1 20 Londres P4 200 F1 20 Londres P5 100 F1 20 Londres P6 100 F2 10 Paris P1 300 F2 10 Paris P2 400 F3 10 Paris P2 200 F4 20 Londres P2 200 F4 20 Londres P4 300 F4 20 Londres P5 400 Tabela 5: Tabela do fornecedor. A principal desvantagem é a quantidade excessiva de redundâncias, que são também chamadas de anomalias de atualização. No exemplo acima, não dá para inserir a informação de que um determinado fornecedor está numa cidade específica até que ele efetivamente forneça pelo menos uma peça. E se eliminarmos uma tupla da tabela acima, eliminaremos talvez muito mais informações que gostaríamos. Para solucionar, utiliza-se o processo de normalização, que informalmente pode ser entendido agora como uma processo de desempacotamento: inserir informações logicamente isoladas em variáveis de relações separadas. Assim, a solução para esses problemas seria: SEGUNDA { #F, STATUS, CIDADE } PRIMARY KEY { #F } ; e FP{ #F, #P, QDE } PRIMARY KEY { #F, #P } FOREIGN KEY { #F } REFERENCES SEGUNDA; Assim, deve ficar claro que essa estrutura resolve todos os problemas com operações de atualização descritos anteriormente. Segunda forma normal: uma variável está na 2FN se e somente se ela está na 1FN e todo atributo não-chave é irredutivelmente dependente da chave primária. Mas a estrutura SEGUNDA ainda sofre pela falta de independência mútua entre seus atributos não-chaves. Mais detalhadamente, a dependência de STATUS sobre #F, embora seja funcional e, de fato, irredutível, é transitiva (através de CIDADE): cada valor de #F determina uma CIDADE e esta, por sua vez, determina o valor de STATUS. Dependências transitivas levam também a anomalias de atualização. Mais uma vez a solução é desempacotar, transformar a variável SEGUNDA em:

10 3 PROJETO 10 SEGUNDA #F STATUS CIDADE F1 20 Londres F2 10 Paris F3 10 Paris F4 20 Londres F5 30 Atenas FP #F #P QDE F1 P1 F1 P2 F1 P3 F1 P4 F1 P5 F1 P6 F2 P1 F2 P2 F2 P3 F3 P2 F4 P2 F4 P4 F4 P5 Tabela 6: Tabela da variável SEGUNDA e FP. FC { #F, CIDADE } PRIMARY KEY { #F } FOREIGN KEY { CIDADE } REFERENCES CS ; e CS{ CIDADE, STATUS } PRIMARY KEY { CIDADE } ; Terceira forma normal: uma variável está na 3FN se e somente se ela está em 2FN e todo atributo não-chave é dependente de forma não transitiva da chave primária. Uma observação importante a ser feita é que o nível de normalização de uma variável de uma relação dada é uma questão de semântica, não apenas uma questão de valores de dados que essa variável de relação possa conter em algum momento particular. Para resumir, pode-se dizer que para se chegar ao nível da 3FN, deve-se realizar duas operações: 1. Dada a variável de relação R como esta: (Para reduzir dependências, redundâncias triviais) R { A, B, C, D } PRIMARY KEY { A, B } ; Deve-se substituir R por suas duas projeções R1 e R2:

11 FC #F CIDADE F1 Londres F2 Paris F3 Paris F4 Londres F5 Atenas CS CIDADE STATUS Atenas 30 Londres 20 Paris 10 Tabela 7: Tabela da variável FC e CS. R1 { A, D } PRIMARY KEY{ A, D } ; R2 { A, B, C } PRIMARY KEY { A, B } FOREIGN KEY { A } REFERENCES R1 ; 2. Dada a variável de relação R como esta: (Para reduzir dependências transitivas, e.g. A B e B C) R { A, B, C } PRIMARY KEY { A } ; Deve-se substituir R por suas duas projeções R1 e R2: R1 { B, C } PRIMARY KEY{ B } ; R2 { A, B } PRIMARY KEY { A } FOREIGN KEY { B } REFERENCES R1 ; 4 SQL A SQL é uma linguagem padrão para interação com banco de dados relacionais. Originalmente, o nome SQL significava Structured Query Language (Linguagem de Consulta Estruturada) e se pronunciava sequel. Porém, agora a linguagem se transformou num padrão, e o seu nome agora é apenas um nome - não é oficialmente uma abreviatura para alguma coisa - e a pronúncia pendeu para esse-quê-éle. Seu nome oficial é International Standard Database Language SQL (1992), largamente referenciada na literatura por SQL/92 ou SQL2, que foi a grande revisão do padrão proposto segundo o padrão SQL. Posteriormente, teve-se um desenvolvimento da SQL2 para a SQL3, no que concerne ao suporte a objetos. Mais informações a respeito do suporte a objetos podem ser obtidas no seguinte ponteiro: Conceitualmente, SQL é um padrão relacional, i.e., não-procedural (nível de abstração maior que C++, por exemplo): não se indica como mas o quê se quer. A tarefa de como executar é definida pelo otimizador do SGBD. Um tutorial de SQL pode ser obtido em: Tour-of-MySQL/. Uma simples referência de quais diretivas são padronizadas e suas sintaxes pode ser obtidas facilmente em

12 4 SQL 12 Uma referência excelente para que deseja saber mais sobre SQL é o ponteiro Ele possui uma ferramenta interativa para se contruir declarações SQL e testá-las sobre diferentes bancos de dados. 4.1 Operações de definição Na SQL3 é possível definir-se domínios próprios do usuário, na SQL2 não. Aqui, os domínios serão considerados como tipos, mas uma discussão um pouco mais profunda mostra que eles estão longe de serem a mesma coisa, como mostra o capítulo 4 de [C. 00]. Os tipos internos permitidos pela SQL são: CHARACTER [ VARYING ] (n); BIT [ VARYING ] (n); NUMERIC (p,q); DECIMAL (p,q); INTEGER; SMALLINT; FLOAT (p); DATE; TIME; TIMESTAMP; INTERVAL. Como dito anteriormente, os domínios em SQL não são tipos verdadeiros. Em SQL, eles servem apenas para permitir que um tipo embutido, já definido, receba um nome que possa ser usado como abreviação por várias colunas em diversas definições de tabelas. Um exemplo de domínios podem ser vistos no código [2]. 1 CREATE DOMAIN tipo F # CHAR( 5 ) ; 2 CREATE DOMAIN tipo P # CHAR( 6 ) ; 4 CREATE TABLE F ( tipo F # F #,... ) ; 5 CREATE TABLE P ( tipo P # P #,... ) ; 6 CREATE TABLE FP ( tipo F # F#, tipo P # P #,... ) ; Código 2: Exemplo de domínios usando DOMAIN. Como domínio não constitui uma tipagem forte e, portanto, não existe uma verificação de tipo verdadeira, exige-se muito cuidado ao usá-la. Por exemplo, dadas as definições do código [2], a operação de SQL descrita no código [3] não falhará em nenhuma verificação de tipo, embora logicamente devesse falhar. Pode-se criar uma base de dados no sistema de gerenciamento de banco de dados através da instrução CREATE DATABASE nome bd. Ela cria uma base da dados vazia. A partir daí, a

13 4 SQL 13 1 SELECT 2 FROM FP 3 WHERE F# = P# ; Código 3: Exemplo de falha de verificação de tipo em domínios. instrução necessária para se criar tabelas, já mostrada acima pela facilidade em seu uso e pelo seu caráter auto-explicativo, é CREATE TABLE nome (tipocoluna1 nomecoluna1, tipocoluna2 nomecoluna2, ). Essa instrução pode ser passada com mais parâmetros. Para mais informações, consulte [MyS04]. Depois de criada uma tabela, pode-se alterá-la através da instrução ALTERTABLE nome ADD tipocoluna nomecoluna. Ela inclui uma coluna à uma tabela já existente. Para remover um coluna, basta trocar o ADD por DROP, que será visto mais adiante. Finalmente, o último dos mais importantes comandos de definição de dados, é o DROP. Essa instrução permite excluir base de dados DROP DATABASE nome bd ou mesmo tabelas DROP TABLE nome inteiras. Para a exclusão de simples registros, usa-se DELETE, que será explicado mais adiante. 4.2 Operações de manipulação de dados Como dito anteriormente, os três principais aspectos manipulativos de um banco de dados relacional são: restrição, projeção e junção. Essas três operações podem ser implementadas pela instrução SELECT. Abaixo tem-se alguns exemplos que comprovam essa idéia. 1 SELECT #F, #P, QDE 2 FROM FP 3 WHERE QDE < ; Código 4: Exemplo de restrição usando SELECT. 1 SELECT F#, NomeF 2 FROM F ; Código 5: Exemplo de projeção usando SELECT. Note que o código [5] acima pode ser simplificado como o código [6] abaixo. Obs.: Às vezes pode ser necessário o uso de nomes qualificados para tirar a ambiguidade de referências à colunas, por exemplo: P.P#, FP.P#. Inclusive o * pode ser qualificado, como em F.*. 4.3 Operações de Atualização As principais operações de atualização definidas pela SQL são a inserção (INSERT), atualização (UPDATE) e eliminação (DELETE) de registros. É interessante notar que a eliminação de tabelas possui uma diretiva especial (DROP) já mencionada anteriormente em 4.1. O exemplo [8] abaixo pressupões que já exista uma tabela com o nome temp, com duas colunas, P# e PESO. Essa instrução insere nessa tabela números de peças e pesos correspondentes a todas as peças vermelhas.

14 1 SELECT 2 FROM F ; Código 6: Exemplo de projeção simplificada usando SELECT. 1 SELECT F. F#, P#, NomeF 2 FROM F, FP 3 WHERE F. F# = FP. F# ; Código 7: Exemplo de junção usando SELECT. O próximo exemplo, código [9], atualiza o status de tidis is fornecedores em Paris, duplicandoo. A instrução DELETE, no exemplo 10, elimina todas as remessas correspondentes à peça P2. Já foi citado em [3.1] que pode-se criar visões no projeto de um banco de dados. Elas representam o nível mais externo da arquitetura de um banco. Em SQL pode-se criar visões a partir da diretiva CREATE VIEW. A partir daí, essa visão é tratada exatamente como uma tabela, mas que não está implementada fisicamente. Um exemplo de como criar um visão e de uma consulta de SQL sobre essa visão pode ser observada abaixo nos códigos [11] e [12] respectivamente. É interessante notar que qualquer alteração sobre uma VIEW, afetará diretamente a tabelea correspondente que está fisicamente implementada. Imagine a seguinte visão criada como mostra o código [13]. A operação de exclusão executada na linha 6, é o mesmo que executar a operação da linha 8 sobre a tabela pai da visão. 4.4 Sumário das instruções SQL As instruções mais comuns usadas em SQL e mencionadas anteriormente nesse documento são: CREATE DOMAIN, CREATE TABLE, CREATE DATABASE, CREATE VIEW, ALTER DOMAIN, ALTER TABLE, ALTER VIEW, INSERT, UPDATE, DELETE, DROP DOMAIN, DROP TABLE, DROP VIEW, DROP DATABASE. Segue abaixo uma relação resumida e simplificada das palavras reservadas definidas pelo padrão SQL. Do padrão SQL2 de 1992, dentre outras mais comuns, tem-se: AFTER, ALIAS, ASYNC, BE- FORE, BOOLEAN, BREADTH, COMPLETION, CALL, CYCLE, DATA, BETWEEN, BIT, BIT LENGTH, BOTH, CASCADE, CASCADED, CASE, CAST, CATALOG, CHAR LENGTH, CHARACTER LENGTH, COALESCE, COLLATE, COLLATION, COLUMN, CONNECT, CONNECTION, CONSTRAINT, CONSTRAINTS, CONVERT, CORRESPONDING, CROSS, CURRENT DATE, CURRENT TIME, CURRENT TIMESTAMP, CURRENT USER, DATE, DAY, DEALLOCATE, DEFERRABLE, DEFERRED, DESCRIBE, DEPTH, DICTIONARY, EACH, ELSEIF, EQUALS, GENERAL, IF, IGNORE, LEAVE, DESCRIPTOR, DIAGNOS- TICS, DISCONNECT, DOMAIN, DROP, ELSE, END-EXEC, EXCEPT, EXCEPTION, EXE- CUTE, EXTERNAL, EXTRACT, FALSE, FIRST, FULL, GET, GLOBAL, HOUR, IDEN- TITY, IMMEDIATE, INITIALLY, INNER, INPUT, INSENSITIVE, INTERSECT, INTER- VAL, ISOLATION, JOIN, LAST, LEADING, LEFT, LEVEL, LOCAL, LOWER, MATCH, MINUTE, MONTH, NAMES, NATIONAL, LESS, LIMIT, LOOP, MODIFY, NEW, NONE, OBJECT, OFF, OID, OLD, NATURAL, NCHAR, NEXT, NO, NULLIF, OCTET LENGTH, ONLY, OUTER, OUTPUT, OPERATION, OPERATORS, OTHERS, PARAMETERS, PEN- DANT, PREORDER, PRIVATE, OVERLAPS, PAD, PARTIAL, POSITION, PREPARE, PRE-

15 1 INSERT 2 INTO temp ( P#, PESO ) 3 SELECT P#, PESO 4 FROM P 5 WHERE COR = Vermelha ; Código 8: Exemplo de INSERT. 1 UPDATE F 2 SET STATUS = STATUS 2 3 WHERE CIDADE = P a r i s ; Código 9: Exemplo de UPDATE. SERVE, PRIOR, READ, PROTECTED, RECURSIVE, REF, REFERENCING, REPLACE, RESIGNAL, RETURN, RELATIVE, RESTRICT, REVOKE, RIGHT, ROWS, SCROLL, SE- COND, SESSION, RETURNS, ROLE, ROUTINE, ROW, SAVEPOINT, SEARCH, SENSI- TIVE, SEQUENCE, SESSION USER, SIZE, SPACE, SQLSTATE, SUBSTRING, SYSTEM USER, SIGNAL, SIMILAR, SQLEXCEPTION, SQLWARNING, STRUCTURE, TEST, THERE, TEM- PORARY, THEN, TIME, TIMESTAMP, TIMEZONE HOUR, TIMEZONE MINUTE, TRAI- LING, TRANSACTION, TRANSLATE, TRANSLATION, TRIM, TRUE, UNKNOWN, TRIG- GER, TYPE, UNDER, VARIABLE, VIRTUAL, VISIBLE, WAIT, WHILE, UPPER, USAGE, USING, VALUE, VARCHAR, VARYING, WHEN, WRITE, YEAR, WITHOUT, ABSOLUTE, ACTION, ADD, ALLOCATE, ALTER, ARE, ASSERTION, AT, ZONE. Do padrão SQL3 de 1998, dentre outras mais comuns, tem-se: ACTION, ACTOR, AF- TER, ALIAS, ASYNC, ATTRIBUTES, BEFORE, BOOLEAN, BREADTH, COMPLETION, CURRENT PATH, CYCLE, DATA, DEPTH, DESTROY, DICTIONARY, EACH, ELEMENT, ELSEIF, EQUALS, FACTOR, GENERAL, HOLD, IGNORE, INSTEAD, LESS, LIMIT, LIST, MODIFY, NEW, NEW TABLE, NO, NONE, OFF, OID, OLD, OLD TABLE, OPERATION, OPERATOR, OPERATORS, PARAMETERS, PATH, PENDANT, POSTFIX, PREFIX, PRE- ORDER, PRIVATE, PROTECTED, RECURSIVE, REFERENCING, REPLACE, ROLE, ROU- TINE, ROW, SAVEPOINT, SEARCH, SENSITIVE, SEQUENCE, SESSION, SIMILAR, SPACE, SQLEXCEPTION, SQLWARNING, START, STATE, STRUCTURE, SYMBOL, TERM, TEST, THERE, TRIGGER, TYPE, UNDER, VARIABLE, VIRTUAL, VISIBLE, WAIT, WITHOUT, CALL, DO, ELSEIF, EXCEPTION, IF, LEAVE, LOOP, OTHERS, RESIGNAL, RETURN, RETURNS, SIGNAL, TUPLE, WHILE. 5 Exemplo Apenas algumas definições interessantes: Nome do servidor: Nome do cliente: mysqld ou mysqld.exe; myslq ou mysql.exe. Um exemplo de um comando típico para iniciar o cliente é: c:\mysql\bin\mysql -h nome.do.host -u nomedousuario -p nomedabasededados Onde:

16 5 EXEMPLO 16 1 DELETE 2 FROM FP 3 WHERE P# = P2 ; Código 10: Exemplo de DELETE. 1 CRETE VIEW bom fornecedor 2 AS SELECT F#, STATUS, CIDADE 3 FROM F 4 WHERE STATUS > 1 5 ; Código 11: Exemplo de CREATE VIEW. nome.do.host é o endereço do computador que está rodando o servidor; nomedousuario é o nome do usuário; nomedabasededados é o nome da base de dados que será usada; -p é a opção que exige um prompt para a senha do usuário. De um modo mais simple ainda, basta o comando: mysql},para que se tenha a seguinte conexão observada na figura [5]. Note que a conexão se fez, por padrão, com os seguinte atributos: usuário, minasi - quem executou o programa; host, como nenhum argumento foi passado na chamada do programa, localhost; dentre outros. Figura 5: Tela após a simples execução de um cliente SQL e seu status. A partir do prompt fornecido pelo programa cliente, pode-se fazer qualquer solicitação SQL, criar-se novas tabelas, base de dados (note que aí é necessário que se tenha permissão para tal), assim como eliminá-las, fazer consultas, inserções, atualizações e etc. Além disso, pode-se visualizar o banco de dados através de alguns comandos bem úteis:

17 1 SELECT F#, STATUS 2 FROM bom fornecedor 3 WHERE CIDADE = Londres ; Código 12: Exemplo de uma consulta sobre uma VIEW. 1 CREATE VIEW t e s t e 2 AS SELECT #EMP, Nome Emp, S a l a r i o 3 FROM EMP 4 WHERE S a l a r i o > 3K ; 6 DELETE FROM t e s t e WHERE S a l a r i o < 5K ; 8 DELETE FROM EMP WHERE ( S a l a r i o > 3K && S a l a r i o < 5K) ; Código 13: Exemplo de eliminação de registro na VIEW e suas implicações na tabela real. show databases; mostra todas as bases de dados do servidor que se tenha acesso. O comando mysqlshow funciona da mesma forma só que este é executado no shell padrão, não no do cliente. use basededadosx; configura a base de dados a ser utilizada. Normalmente, após a instalação, existem duas pré-definidas: mysql - que possui as permissões, usuários, etc. - e a test - base para testes que qualquer usuário pode alterar. show tables; mostra todas as tabelas da dase de dados configurada para uso. Note que antes é necessário que se execute a instrução usebasededadosx;. O comando mysqlshowbasededadosx funciona da mesma forma, mas é executado no shell padrão. describe tabelax; descreve como são cada campo de uma tabela, quais são seus tipos, seus tamanhos, quais campos compõem a chave-primária, etc. help mostra a ajuda. Um outro comando, o mysqladmin, chama um programa diferente do cliente SQL. Esse programa é usado para administrar vários aspectos do servidor de banco de dados MySQL. Informações mais detalhadas a esse respeito podem ser obtidas em: intro.html#section Para finalizar, mostra-se abaixo dois exemplos de consultas SQL: a primeira executada na prompt do cliente mysql, enquanto que a segunda é executada como um comando normal no shell padrão. SELECT* FROM tabelax; mysql-e SELECT * FROM tabelax basededadosy 6 APIs - Application Program Interfaces As APIs, ou Interfaces para Programas de Aplicação, permite que instruções SQL estejam embutidas dentro de programas em linguagens comuns de programação, como C++, Java, PHP, etc. Por isso mesmo, as APIs são também referenciadas como SQL Embutida.

18 Existem também referências para SQL Dinâmica, que nada mais é do que um conjunto de recursos embutidos de SQL que se destinam a oferecer suporte à construção de aplicações generalizadas, on-line e possivelmente interativas. 6.1 Java Destinado ao fim anteriormente exposto, existe em Java um pacote chamado java.sql que permite executar as funcionalidades da SQL Embutida. Segundo a própria página de documentação do pacote, ele fornece uma API para acesso e processamento dos dados gravados em uma fonte de dados (usualmente um banco de dados relacional) usando a linguagem de programação Java TM. Para acessar essa página, basta seguir o ponteiro Um exemplo interessante de como executar uma query em Java TM é mostrado abaixo no código [14]. O exemplo foi obtido do ponteiro lindgren/190/mysql-jdbc/. Ele possui um inconveniente que é a utilização de um JDBC 3 driver muito específico - da Terrance Zellars - para a comunicação com o banco de dados. Um JDBC driver GPL fornecido pela MySQL AB, e portanto mais confiável, é o MySQL Connector/J. Ele é o driver JDBC oficial para o MySQL. Mais informações sobre o driver pode ser obtida em Pode-se baixá-lo gratuitamente em C++ Programas escritos na linguagem C++ que necessitem das funcionalidades da SQL embutida podem utilizar-se da API fornecida no ponteiro Um exemplo da utilização dessa API pode ser observado no código [6.2] abaixo. 7 Estudo comparativo entre MySQL e PostgreSQL Como dito na introdução desse documento, uma análise mais profunda comparando os bancos de dados disponíveis no mercado se faz bastante necessária. Principalmente entre os dois mais comuns, MySQL [MySb] e PostgreSQL [Pos], e o considerado o mais eficiente, o Oracle [Ora]. Assim, apenas para ilustrar como a performance do MySQL, que foi a base deste documento, é relativamente boa quando comparada com o Oracle 9i, mostra-se as figuras [6] e [7] abaixo. Referências [C. 00] [E. 72] C. J. Date. Introdução a Sistemas de Bancos de Dados. Editora Campus, tradução da sétima edição americana edition, , 4.1 E. F. Codd. further normalization of the data base relational model. Data Base Systems, Courant Computer Science Symposia Series 6, [MySa] Instalação do mysql. Internet, [MySb] Mysql. Internet, 1.1, 7 [MyS04] MySQL A.B. MySQL Reference Manual. MySQL A.B, JDBC (Java Database Connectivity), de acrodo com a JavaSofts em A API JDBC define classes Java para representar conexões com banco de bados, declarações SQL, etc..

19 REFERÊNCIAS 19 Fonte: eweek em Server Databases Clash Figura 6: Benchmark de banco de dados: páginas da web retornadas por segundo. [Ora] Oracle. Internet, 7 [Pos] Postgresql. Internet, 1.1, 7

20 REFERÊNCIAS 20 Fonte: eweek em Server Databases Clash Figura 7: Benchmark de banco de dados: as respostas mais rápidas.

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Aula 1 Acesso a Banco de Dados

Aula 1 Acesso a Banco de Dados Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas

Leia mais

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores

Leia mais

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes Banco de dados 1 Linguagem SQL DDL e DML Professor: Victor Hugo L. Lopes Agenda: Introdução à linguagem de dados; DDL; DML; CRUD; Introdução à linguagem SQL. 2 Por que precisamos da linguagem SQL? A algebra

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS Unidade 1 - Introdução Dados; Banco de Dados; Base de Dados; Projeto de Banco de Dados.

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

No Fedora, instalamos os pacotes mysql e mysql-server, usando o yum: Instalando o MySQL O MySQL é um banco de dados extremamente versátil, usado para os mais diversos fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um aplicativo desenvolvido

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Integrando Java com Banco de Dados

Integrando Java com Banco de Dados Especialização em Engenharia de Software Programação Orientada a Objetos JDBC Java Database Connectivity Sérgio Soares scbs@cin.ufpe.br Objetivos Apresentar os conceitos básicos da especificação de Java

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Banco de Dados. Prof. Leonardo Barreto Campos 1

Banco de Dados. Prof. Leonardo Barreto Campos 1 Banco de Dados Prof. Leonardo Barreto Campos 1 Sumário Introdução; Banco de Dados Relacionais; SQL; MySQL; Manipulando Banco de Dados com o JDBC; Bibliografia; Prof. Leonardo Barreto Campos 2/25 Introdução

Leia mais

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Programação Orientada a Objetos JDBC Java Database Connectivity

Programação Orientada a Objetos JDBC Java Database Connectivity Especialização em Engenharia de Software Programação Orientada a Objetos JDBC Java Database Connectivity Sérgio Soares scbs@cin.ufpe.br Objetivos Apresentar os conceitos básicos da especificação de Java

Leia mais

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 BASES DE DADOS I LTSI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que a IBM desenvolvia

Leia mais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

Leia mais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

4.6. SQL - Structured Query Language

4.6. SQL - Structured Query Language 4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o American

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Banco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010

Banco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Mapeamento Objeto-Relacional 2 API JDBC 3 API

Leia mais

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM GBC043 Sistemas de Banco de Dados Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM Página 2 Definição BD Def. Banco de Dados é uma coleção de itens de dados

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento. Roteiro Modelo de Dados Relacional Posicionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Introdução

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 Leitura Obrigatória ELMASRI,

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião INTRODUÇÃO BANCO DE DADOS Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado

Leia mais

Junções e Índices em Tabelas

Junções e Índices em Tabelas Junções e Índices em Tabelas Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SGBD Considerados MySQL (http://www.mysql.org) SGBD gratuito e simples, sem muitos recursos avançados Fácil de instalar

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC Java Database Connectivity Provê acesso SQL ao banco de dados Principais

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)

Leia mais

Programação com Acesso a Banco de Dados

Programação com Acesso a Banco de Dados Campus Ipanguaçu Curso: Técnico em Informática Programação com Acesso a Banco de Dados AULA 17 ACESSO A BANCO DE DADOS COM JDBC PROF.: CLAYTON M. COSTA 2 011.2 Introdução Aplicação + Banco de Dados: Funcionalidade

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Banco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Banco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Banco de Dados Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Roteiro Mapeamento de objetos para modelo relacional Estratégias de persistência Persistência JDBC Mapeando Objetos para o Modelo Relacional

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada. Conceitos básicos Angélica Toffano Seidel Calazans E-mail: angelica_toffano@yahoo.com.br Conceitos introdutórios de Modelagem de dados Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Manipulação de Banco de Dados com Java 1. Objetivos

Manipulação de Banco de Dados com Java 1. Objetivos Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Everson Santos Araujo everson@por.com.br Conceitos Dado - Um fato que pode ser armazenado Banco de dados (BD) - Coleção de dados interrelacionados Sistema Gerenciador de Banco

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

Disciplina de Banco de Dados Parte V

Disciplina de Banco de Dados Parte V Disciplina de Banco de Dados Parte V Prof. Elisa Maria Pivetta CAFW - UFSM Modelo de Dado Relacional O Modelo Relacional O Modelo ER é independente do SGDB portanto, deve ser o primeiro modelo gerado após

Leia mais