Seminário S2i: Banco de Dados - MySQL e PostgreSQL
|
|
- Jónatas Amaro Antunes
- 8 Há anos
- Visualizações:
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 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 maisBanco 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 maisBANCO 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 maisAula 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 maisIntroduçã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 maisLinguagem 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 maisLaborató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 maisManipulaçã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 maisFaculdade 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 maisFaculdade 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 maisComandos 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 mais1. 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 maisStructured 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 maisBanco 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 mais2008.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 maisIntroduçã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 maisAULA 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 maisDisciplina: 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 maisAPOSTILA 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 maisProf. 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 maisIntegridade 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 maisComandos 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 maisBá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 maisPHP 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 maisSQL 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 maisUniversidade 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 maisBanco 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 maisProgramaçã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 maisBANCO 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 maisBANCO 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 maisIntroduçã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 maisNo 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 maisUNIVERSIDADE 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 maisProf.: 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 maisIntegrando 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 maisTriggers 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 maisSQL 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 maisProgramaçã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 maisSQL. 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 maisBanco 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 maisPrincipais 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 maisBanco 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 maisModelo 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 maisPersistê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 mais2008.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 maisProf. 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 maisProgramaçã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 maisBASES 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 maisSQL 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 maisLeonardo 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 maisFaculdade 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 maisSistemas 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 maisBANCO 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 maisSQL - 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 maisIF685 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 mais4.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 maisFAPLAN - 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 maisBANCO 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 mais8. 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 maisDado: 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 maisBanco 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 maisUsando 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 maisConteú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 maisConceitos 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 maisSQL 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 maisBanco 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 maisUNIVERSIDADE 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 maisGBC043 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 maisPara 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 maisRoteiro. 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 maisO 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 mais1. 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 mais14/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 maisNoçõ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 maisLINGUAGEM 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ção (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção
Leia maisINTRODUÇÃ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 maisJunçõ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 maisINTRODUÇÃ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 maisJDBC (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 maisPersistê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 maisPROCEDIMENTOS 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 maisTarefa 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 maisJava & 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 maisProgramaçã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 maisIntroduçã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 maisStructure 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 maisJDBC 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 mais04/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 maisOperaçã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 maisTarefa 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 maisBanco 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 maisFUNCTION ) 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 maisConceitos 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 maisOrientaçã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 maisManipulaçã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 maisSistemas 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 maisSistemas 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 maisDisciplina 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