SQL Server - Arquitectura Cliente/Servidor

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

Download "SQL Server - Arquitectura Cliente/Servidor"

Transcrição

1 MS - SQL Server

2 Índice SQL Server - Arquitectura Cliente/Servidor... 3 SQL Server - Arquitectura da Base de Dados... 4 SQL Server - SQL Server Enterprise Manager... 8 SQL Server - Criar uma base de dados SQL Server - Criar uma base de dados (Exemplo) SQL Server - Criar uma base de dados (Outro Exemplo) SQL Server - Criar uma tabela Restrições de Integridade de Gatilhos Restrições de Chaves Restrições de Integridade Referencial Restrições Baseadas em Atributos Nomes das Restrições de Integridade Gatilhos em SQL Gatilhos em SQL-Server Índices Vistas Vistas e Segurança SQL Linguagem de Manipulação de Dados (LMD) SQL Server Procedures SQL Server Anexos

3 SQL Server - Arquitectura Cliente/Servidor Microsoft SQL Server foi desenhado para ser um sistema Cliente/Servidor: - A Base de Dados pode residir num único computador, conhecido como Servidor, e assim está garantida a partilha dos dados por múltiplos utilizadores; Figura 1. 3

4 SQL Server - Arquitectura da Base de Dados Figura 2. Podem existir múltiplas Bases de dados; O SQL Server tem quatro bases de dados de sistema (master, model, tempdb, and msdb); 4

5 SQL Server - Arquitectura da Base de Dados (Continuação) Bases de Dados de Sistema: Microsoft SQL Server tem quatro bases de dados de sistema: Master, regista: - todas as contas e as configurações do sistema. - a existência de todas as outras bases de dados e a localização dos ficheiros primários que contêm a informação de inicialização para as bases de dados dos utilizadores. - A informação de inicialização do SQL Server. Tempdb: - Regista toda a informação temporária. - É recriada sempre que o SQL Server é iniciado. - Todas as tabelas temporárias são eliminadas sempre que é terminada a ligação. - A base de dados cresce de acordo com as necessidades. Model : - É usada como um modelo para todas as bases de dados criadas no sistema. - Quando a instrução CREATE DATABASE é usada, a primeira parte da nova base de dados é criada copiando o conteúdo da base de dados model, o resto da base de dados é preenchida com páginas em brando. Msdb: - É usada para escalonar sinais de alerta e trabalhos. 5

6 SQL Server - Arquitectura da Base de Dados (Continuação) No SQL Server 7.0, todas as bases de dados, incluindo as bases de dados de sistema, têm o seu próprio conjunto de ficheiros, que não são partilhados com nenhuma outra base de dados. A localização por defeito dos referidos ficheiros é C:\Mssql7\Data directory: Ficheiro da Base de dados Nome físico do Ficheiro Tamanho por defeito Master primary data Master.mdf 7.5 MB Master log Mastlog.ldf 1.0 MB tempdb primary data Tempdb.mdf 8.0 MB tempdb log Templog.ldf 0.5 MB model primary data Model.mdf 0.75 MB model log Modellog.ldf 0.75 MB msdb primary data Msdbdata.mdf 3.5 MB msdb log Msdblog.ldf 0.75 MB Cada base de dados no SQL Server contém tabelas de sistema que regista os dados necessários aos componentes do SQL Server. Os utilizadores não podem alterar directamente a informação das tabelas de sistema. Existe um conjunto de ferramentas que permitem aos utilizadores administrar o seu sistema. Podem ser utilizados utilitários de administração tais como SQL Server Enterprise Manager, para administrar directamente o sistema. Os Programadores construindo scripts em Transact-SQL e procedures conseguem garantir todas as funções administrativas do seu sistema. Não são suportados triggers definidos nas tabelas de sistema; podem alterar o funcionamento do mesmo. 6

7 SQL Server - Arquitectura da Base de Dados (Continuação) Figura 3. SQL Server permite o acesso de múltiplos utilizadores a trabalhar em diferentes bases de dados ao mesmo tempo; Quando um utilizador estabelece uma ligação, fica associado a uma base de dados específica no servidor, chamada de base de dados corrente; Cada utilizador pode comutar entre diferentes bases de dados recorrendo ao Transact-SQL USE database_name ; 7

8 SQL Server - SQL Server Enterprise Manager As aplicações em SQL Server são construídas de acordo com uma importante hierarquia chamada SQL Distributed Management Framework ( SQL-DMF ). - No primeiro nível estão comandos em Transact-SQL. Transact-SQL é uma versão Microsoft do SQL standard. - Tudo no SQL Server pode ser feito através de comandos em texto simples ( se souber o que está a fazer ). - O segundo nível é um conjunto de objectos de gestão da base de dados que invocam comandos Transact-SQL. - No topo da hierarquia está o SQL Server Enterprise manager. O SQL Server Enterprise Manager é uma ferramenta gráfica que permite efectuar a gestão do universo SQL Server: - Configurar servidores. - Criar e gerir devices. - Criar e gerir bases de dados. - Fazer cópias de segurança e restaurar bases de dados. - Criar, modificar e eliminar objectos. - Gerir utilizadores da base de dados. - Executar queries. - Configurar e modificar tarefas automáticas. - Controlar replicação entre servidores

9 SQL Server - SQL Server Enterprise Manager (Continuação) Figura 4. 9

10 SQL Server - Criar uma base de dados No SQL Server, os dados são armazenados em bases de dados e organizados em componentes lógicos visíveis para os utilizadores. Uma base de dados é implementada fisicamente em dois ou mais ficheiros em disco. Existem dois componentes que compõem um sistema cliente/servidor de bases de dados: programas que proporcionam aos utilizadores o acesso aos dados (cliente), e a estrutura que permite gerir os dados (servidor). Criar uma base de dados no SQL Server significa planear, criar e gerir um conjunto de componentes que se relacionam: Base de Dados - Contém os objectos usados para representar, gerir e aceder aos dados. CREATE DATABASE Tabelas - Armazenam linhas de dados e definem relações entre múltiplas tabelas. CREATE TABLE Diagramas- Representam graficamente os objectos da base de dados. Índices - Optimizam a velocidade de acesso aos dados de uma tabela. CREATE INDEX Vistas - Proporcionam uma maneira alternativa de visualizar os dados em uma ou mais tabelas. CREATE VIEW Stored Procedures - Programas em Transact-SQL que definem regras de negócio, tarefas, e processos no servidor. CREATE PROCEDURE Triggers - São tipos especiais de Stored Procedures que só são executados quando os dados de uma tabela são alterados. CREATE TRIGGER Full-Text Indexes - Facilitam a consulta em dados armazenados em colunas do tipo texto (varchar, text). 10

11 SQL Server - Criar uma base de dados (Continuação) SQL Server executa a instrução CREATE DATABASE em dois passos: 1. SQL Server usa uma cópia da base de dados model para inicializar a nova base de dados. 2. SQL Server preenche o resto da base de dados com páginas vazias. Existem três tipos de ficheiros para armazenar uma base de dados: O Ficheiro primário, que contém a informação de inicialização da base de dados e também pode ser usado para armazenar dados; Todas as bases de dados têm obrigatoriamente um Ficheiro Primário. Ficheiro Secundário, usado para armazenar os dados que não cabem no ficheiro primário. Uma base de dados não precisa do ficheiro secundário se o ficheiro primário tiver capacidade suficientemente. Por outro lado pode-se usar múltiplos ficheiros secundários, eventualmente, dispersos por várias unidades de disco. Ficheiros de LOG, que armazenam informação necessária à recuperação da base de dados. Tem que existir pelo menos um ficheiro de LOG. O tamanho mínimo para um ficheiro de LOG é de 512K. Tipo de Ficheiro Ficheiro primário Ficheiro secundário Ficheiro de Log.mdf.ndf.ldf Extensões 11

12 SQL Server - Criar uma base de dados Syntax CREATE DATABASE database_name /* Define o Ficheiro primário, se não se colocar esta primitiva, o primeiro ficheiro especificado é assumido como primário*/ [ ON [PRIMARY] [ <filespec> [,...n] ] ] /* Para especificar o ficheiro de LOG, se nada for dito é criado um ficheiro de LOG com uma capacidade de 25% do total dos tamanhos de todos os ficheiros da base de dados*/ [ LOG ON { <filespec> } ] /* Primitivas usadas por questões de compatibilidade com versões anteriores do SQL Server*/ [ FOR LOAD FOR ATTACH ] <filespec> ::= ( [ NAME = logical_file_name, ] FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = { max_size UNLIMITED } ] [, FILEGROWTH = growth_increment] ) [,...n] 12

13 SQL Server - Criar uma base de dados (Exemplo) Este conteúdo faz parte de um ficheiro de script, do tipo texto que deve ser armazenado com extensão.sql. /* Tem-se que utilizar sempre a base de dados Master*/ /* pois esta é que guarda toda a informação relativa à existência de todas as bases de dados do sistema*/ USE MASTER /* Elimina a Base de Dados com o nome MJS_BD1 */ DROP DATABASE MJS_BD1 /* Esta instrução dá ordem de execução*/ GO CREATE DATABASE mjs_bd1 ON /* Nome da base de dados*/ ( NAME = exerc1, FILENAME = 'c:\mssql7\mjsbd1.mdf', /* Especifica o tamanho do ficheiro em MB*/ SIZE = 2, /* Especifica o tamanho máximo, em MB, que o ficheiro mjsbd1.mdf pode tomar, se se colocar o sufixo UNLIMITED o ficheiro pode crescer até o disco ficar cheio*/ MAXSIZE = 8, /* Tamanho acrescentado ao ficheiro sempre que novo espaço é necessário, podem ser usados os sufixos KB, MB ou %, por defeito é MB*/ FILEGROWTH = 20% ) GO 13

14 SQL Server - Criar uma base de dados (Outro Exemplo) USE master GO CREATE DATABASE Archive ON PRIMARY ( NAME = Arch1, FILENAME = 'c:\mssql7\data\archdat1.mdf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = 'c:\mssql7\data\archdat2.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = 'c:\mssql7\data\archdat3.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON ( NAME = Archlog1, FILENAME = 'c:\mssql7\data\archlog1.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Archlog2, FILENAME = 'c:\mssql7\data\archlog2.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) GO 14

15 SQL Server - Criar uma tabela Tipos de Dados: Data e Hora: - datetime - para armazenar datas desde Janeiro 1, 1753, a Dezembro 31, smalldatetime para armazenar datas desde Janeiro 1, 1900, a Junho 6, 2079 Binários: - varbinary - binary Texto: - char - até 8K, um nº fixo de caracteres. - varchar - até 8K, admite que em cada linha possa existir um nº variável de caracteres - text - superior a 8K Numéricos: - int - 4 bytes para representar um número - smallint - 2 bytes - tinyint - 1 byte, de 0 a decimal ou numeric - float - real Monetários: - money - smallmoney Especiais: - bit - Valores booleanos 0 ou 1. 15

16 SQL Server - Criar uma tabela CREATE TABLE <nome da relação> (<lista de nomes e tipos de dados>) Exemplo /* Usa esta base de dados, pois é nela que vai criar a tabela*/ use mjs_bd1 create table unidade ( codun tinyint not null, descricao char(20), ) /* Inicio da definição das restrições de integridade, PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE */ constraint pk_unidade primary key(codun) Apagar uma relação: DROP TABLE <relação>; Alterar esquemas de uma relação: Exemplos: ALTER TABLE actor ADD telefone CHAR(16); ALTER TABLE actor DROP nascimento; 16

17 Restrições de Integridade de Gatilhos Restrições de Chave Restrições de Integridade Referencial Restrições Baseadas em Atributos Restrições Baseadas em Tuplos Gatilhos SQL3 Asserções SQL3 (Não são suportadas pelo SQL-Server) Restrições (constraints) e gatilhos (Triggers) são elementos activos da BD; Expressões ou comandos que são escritos uma vez e guardados na BD e serão executados como resposta a certos eventos; São testadas sempre que há modificações nas relações envolvidas 17

18 Restrições de Chaves Fazem parte da instrução CREATE TABLE São especificadas usando a primitiva PRIMARY KEY CREATE TABLE ACTOR(NOME CHAR(30) PRIMARY KEY,...); CREATE TABLE FILME(TITULO CHAR(30), ANO NUMBER(4), PRIMARY KEY(TITULO, ANO)); Chaves também podem ser especificadas utilizando a primitiva UNIQUE Podem existir várias declarações UNIQUE mas só uma chave primária Ao definir-se um determinado conjunto de campos como chave primária, estamos a especificar que estes campos não admitem valores nulos e não podem existir valores repetidos. Com a primitiva UNIQUE deixa-se em aberto a possibilidade de existirem valores nulos Pode-se proibir a existência de valores nulos para atributos, com recurso à primitiva NOT NULL. 18

19 Restrições de Integridade Referencial Chaves estrangeiras fazem sentido para obrigar determinados atributos a receberem valores que fazem parte da chave primária de uma relação referenciada Quando a chave externa possui somente um atributo pode-se utilizar a primitiva REFERENCES <tabela>(<atributo>) Para um ou mais atributos utiliza-se a primitiva FOREIGN KEY (<atributos>) REFERENCES <tabela>(<atributos>) Exemplo CREATE TABLE PARTICIPA( FILME CHAR(50), ANO NUMBER(4), ACTOR CHAR(30) REFERENCES ACTOR(NOME), SALARIO DECIMAL(9,2), FOREIGN KEY (FILME, ANO) REFERENCES FILME(FILME, ANO) ); 19

20 Restrições Baseadas em Atributos Os valores permitidos para os atributos podem ser restritos com recurso à primitiva CHECK <condição> A verificação da restrição é associada apenas ao atributo em questão. Exemplos SEXO CHAR(1) CHECK (SEXO IN ( F, M )), PRESIDENTE INT CHECK (PRESIDENTE IN (SELECT PRES FROM EXECUTIVO)), Não é equivalente a uma restrição de integridade referencial pois a restrição de integridade é apenas verificada para o atributo em questão. Por exemplo, se alterar o código do presidente na tabela Presidente, com a instrução CHECK não dá erro. 20

21 Nomes das Restrições de Integridade Para se efectuar a manutenção de uma restrição de integridade esta deve ter nome NOME CHAR(30) CONSTRAINT PK_AUTOR PRIMARY KEY SEXO CHAR(1) CONSTRAINT CK_SEXO CHECK (SEXO IN ( F, M )) CONSTRAINT FK_PARTICIPA FOREIGN KEY (FILME, ANO) REFERENCES FILME(TITULO, ANO) Restrições podem ser apagadas com a primitiva ALTER TABLE...DROP... ALTER TABLE ACTOR DROP CONSTRAINT PK_ACTOR; Restrições podem ser adicionadas com a primitiva ALTER TABLE...ADD... ALTER TABLE ACTOR ADD CONSTRAINT PK_ACTOR PRIMARY KEY(NOME); 21

22 Gatilhos em SQL3 São regras Event-Condition-Action (ECA) A acção pode ser executada antes, depois ou em vez do evento que a dispara A acção pode referir-se a valores novos ou aos antigos dos tuplos inseridos, modificados ou apagados no evento que a dispara Eventos de modificação podem especificar um atributo ou um conjunto de atributos Uma condição pode ser especificada por uma cláusula WHEN e a execução da acção só tem lugar se a regra é disparada e a condição é verdadeira quando o evento ocorre 22

23 Gatilhos em SQL3 Continuação EXECUÇÃO da ACÇÃO AFTER WHEN testado depois de executada a operação associada ao evento BEFORE - WHEN testado antes de ser executada a operação associada ao evento INSTEAD OF - a(s) acção(ões) associada(s) ao trigger são executadas caso se verifique a condição WHEN, e a operação associada ao evento nunca é executada. EVENTOS DE DISPARO UPDATE INSERT DELETE A acção do trigger pode conter várias instruções em SQL separadas por vírgulas A execução da referida acção pode ser por cada tuplo (FOR EACH ROW) ou uma única vez. 23

24 Gatilhos em SQL3 Continuação EXEMPLO Pretendemos criar um trigger que impeça a subida da média dos salários dos executivos para além de CREATE TRIGGER MEDIASALTRIGGER INSTEAD OF UPDATE OF SALARIO ON EXECUTIVO REFERENCING OLDTABLE AS VELHOS, NEWTABLE AS NOVOS WHEN (50000<=(SELECT AVG(SALARIO) FROM (( EXECUTIVO EXCEPT VELHOS) UNION NOVOS) ) ) DELETE FROM EXECUTIVO WHERE (CERTIFICADO, NOME, MORADA, SALÁRIO) IN VELHOS; INSERT INTO EXECUTIVO (SELECT * FROM NOVOS); 24

25 Gatilhos em SQL-Server Para garantir a mesma funcionalidade do trigger supra definido em SQL3 utilizaria a seguinte sintaxe em SQL-Server: use master go use mjs_bd1 go drop trigger mediasaltrigger go CREATE TRIGGER MEDIASALTRIGGER ON EXECUTIVO for UPDATE, insert /*Este trigger responde aos eventos de update e insert*/ as numeric /* Declaração de uma variável local (o nome da variável tem que ser sempre precedida from executivo if (select avg(salário) from executivo)>=5000 /* Equivalente à condição WHEN*/ begin print 'vai passear' /*Visualiza uma mensagem no ecrã*/ (select * from inserted where exists /* Estas instruções estão a mais só para fazer referência aos tuplos que foram inseridos ou actualizados na tebela*/ /* Para fazer referência aos tuplos anteriores seria com deleted*/ (select * from EXECUTIVO)) end GO rollback /* Esta instrução permite repor a instância anterior*/ 25

26 Gatilhos em SQL-Server - Continuação Outras instruções que podem ser usadas na acção de um trigger: BEGIN TRANSACTION INICIA UMA TRANSACÇÃO QUE DEPOIS PODERÁ SER CONCRETIZADA COM A INSTRUÇÃO COMMIT TRANSACTION OU NÃO, COM RECURSO À INSTRUÇÃO ROLLBACK; BEGIN...END CINSCUNSCREVE UMA INSTRUÇÃO COMPOSTA IF...ELSE WHILE... UPDATE(CAMPO) DETERMINA SE FOI EFECTUADA UMA OPERAÇÃO DE UPDATE SOBRE O CAMPO ESPECIFICADO. INSERTED TABELA QUE CONTÉM OS NOVOS TUPLOS DEPOIS DA ALTERAÇÃO POR PARTE DO EVENTO QUE ACTIVOU O TRIGGER; DELETED TABELA QUE OS TUPLOS COM A INSTÂNCIA ANTERIOR À EXECUÇÃO DO EVENTO QUE ACTIVOU O TRIGGER 26

27 Índices Um índice visa tornar mais eficiente a pesquisa de dados cujo critério de selecção envolva um determinado campo. A decisão de usar ou não um índice cabe ao projectista da base de dados, tendo em consideração: - melhora muito o desempenho na obtenção de respostas para perguntas envolvendo os atributos especificados no índice; - torna mais demoradas as inserções, eliminações e alterações de tuplos da relação. Pois tem que proceder à reordenação do índice. Criação de índices. CREATE INDEX INDICEANO ON FILME(ANO); CREATE INDEX INDICECHAVE ON FILME(TITULO, ANO); Eliminar um índice. DROP INDEX INDICEANO; 27

28 Vistas Vistas são relações lógicas, sem existência física ao nível da unidade de disco. Relações com existência física são vulgarmente identificadas por tabelas. Criação de Vistas: CREATE VIEW <NOME> AS <DEFINIÇÃO>; Exemplos: CREATE VIEW FILMESPARAMOUNT AS SELECT TITULO, ANO FROM FILME WHERE ESTUDIO= PARAMOUNT ; Criou uma vista com o nome FilmesParamount, que, posteriormente, pode ser usada tal como se fosse uma tabela. Exemplo: SELECT TITULO FROM FILMESPARAMOUNT WHERE ANO=1979; 28

29 Vistas - continuação Vistas Modificáveis. Uma vista é modificável se: - a cláusula WHERE não incluir nenhuma sub-pergunta; - os atributos especificados na cláusula SELECT da vista forem suficientes por forma a permitir que os restantes atributos possam ficar com valor NULL ou um valor por omissão na tabela base. Nota: As operações de inserção, alteração e eliminação efectuadas sobre uma vista podem ser transpostas para a tabela física, desde que os pressupostos anteriormente referidos sejam salvaguardados. Exemplo: Tendo em consideração a relação actor(codigo, nome, nacionalidade): CREATE VIEW TESTE1 AS SELECT CODIGO, NOME FROM ACTOR; Esta vista poderá ser modificável, desde que o campo nacionalidade da tabela física actor, admita valores nulos ou um determinado valor por defeito, caso contrário, teríamos que incluir o campo nacionalidade na cláusula SELECT 29

30 Vistas - continuação Manipulação de Vistas: - Remoções DELETE FROM FILMESPARAMOUNT WHERE TITULO LIKE %TREK% ; Nota: Os caracteres % significam que a cadeia de caracteres pode ter qualquer sequência antes e depois da string TREK. - Modificações UPDATE FILMESPARAMOUNT SET ANO=1979 WHERE TITULO LIKE %TREK% ; - Remover uma vista DROP VIEW FILMESPARAMOUNT; 30

31 Vistas e Segurança Vistas podem ser usadas para apresentar a informação necessária, escondendo detalhes das tabelas base Comandos GRANT e REVOKE podem ser usados para controlar acessos a tabelas base e vistas. Em conjunto com a possibilidade de definir vistas, proporciona uma mecanismo poderoso de controlo de acessos. A segurança pode chegar até ao nível do campo Criar uma vista que devolve um campo de apenas um tuplo Permitir o acesso (GRANT) a essa vista. Exemplos: GRANT INSERT, SELECT ON ACTOR TO CRAMOS; CRAMOS pode inserir e consultar tuplos da tabela ACTOR. GRANT DELETE ON ACTOR TO RAMOS WITH GRANT OPTION; RAMOS pode apagar tuplos da tabela ACTOR e autorizar outros a fazer o mesmo. 31

32 Vistas e Segurança - Continuação GRANT UPDATE (SALARIO) ON EXECUTIVO TO AVENTURA; AVENTURA pode modificar o campo SALARIO da tabela EXECUTIVO. GRANT SELECT ON ACTOR TO CRAMOS, AVENTURA; CRAMOS e AVENTURA podem consultar tuplos da tabela ACTOR. REVOKE SELECT ON ACTOR FROM CRAMOS, AVENTURA; Retira privilégios de consulta a CRAMOS e AVENTURA sobre a tabela ACTOR. 32

33 SQL Linguagem de Manipulação de Dados (LMD) Tendo como base as relações: actor(codigo, nome, nacionalidade) filme(codigo, titulo, ano, realizador) realizador(cod, nome, nacionalidade) actor_filme(filme, actor) Seleccionar Tuplos de uma ou mais relações: SELECT <ATRIBUTOS> FROM <RELAÇÕES> WHERE <CONDIÇÃO> ORDER BY <ATRIBUTOS> Operadores de comparação: =; <>; >; >=; <=; < Operadores aritméticos: +; -; *; / Operadores lógicos: AND; OR; NOT 33

34 SQL Linguagem de Manipulação de Dados (LMD) EXEMPLOS: Seleccionar o nome e a nacionalidade de todos os actores, ordenados pelo nome dos actores SELECT NOME, NACIONALIDADE FROM ACTOR ORDER BY NOME; Seleccionar todos os atributos dos actores residentes nos EUA SELECT * FROM ACTOR WHERE NACIONALIDADE LIKE EUA ; 34

35 SQL Linguagem de Manipulação de Dados (LMD) Seleccionar o nome do realizador do filme com o código 1. (Temos que fazer a junção de tabelas) SELECT REALIZADOR.NOME FROM FILME, REALIZADOR WHERE (FILME.REALIZADOR=REALIZADOR.CODIGO AND FILME.CODIGO=1); Inserir tuplos numa relação Exemplos: INSERT INTO ACTOR(CODIGO,NOME,NACIONALIDADE) VALUES (4, NICOLE, EUA ); INSERT INTO EXECUTIVO SELECT * FROM EMPREGADO; -> Esta instrução é legítima em casos em que o nº de campos e tipos de dados são compatíveis entre a origem e o destino. Eliminar tuplos de uma relação Exemplos: Eliminar o actor cujo codigo é igual a 1. DELETE FROM ACTOR WHERE CODIGO=1; 35

36 SQL Linguagem de Manipulação de Dados (LMD) Alterar tuplos de uma relação Pretende-se que os actores cuja nacionalidade é EUA passe a ser AMERICANA. UPDATE ACTOR SET NACIONALIDADE= AMERICANA WHERE NACIONALIDADE LIKE EUA ; Operações com conjuntos INTERSEPT - Intersecção (No SQL-Server é com EXISTS) EXCEPT - Diferença (No SQL-Server é com NOT EXISTS) UNION - União (Reunião) PROFESSOR EXECUTIVO Codigo Nome Codigo Nome 1 Carlos 1 Carlos 2 Rui Marteleiro 3 Ana Rita 3 Ana Rita 4 Ricardo Baba 36

37 SQL Linguagem de Manipulação de Dados (LMD) Exemplos (SELECT * FROM PROFESSOR) UNION (SELECT * FROM EXECUTIVO); Codigo Nome 1 Carlos 2 Rui Marteleiro 3 Ana Rita 4 Ricardo Baba (SELECT * FROM PROFESSOR) EXCEPT (SELECT * FROM EXECUTIVO); SQL-SERVER: (SELECT * FROM PROFESSOR WHERE NOT EXISTS (SELECT * FROM EXECUTIVO)); Codigo Nome 2 Rui Marteleiro (SELECT * FROM PROFESSOR) INTERSEPT (SELECT * FROM EXECUTIVO); SQL-SERVER: (SELECT * FROM PROFESSOR WHERE EXISTS (SELECT * FROM EXECUTIVO)); Codigo Nome 1 Carlos 3 Ana Rita 37

38 SQL Linguagem de Manipulação de Dados (LMD) Operações de Agregação São operações efectuadas sobre conjuntos de tuplos. Estas pode ser: AVG(<atributo>) - Média dos valores do atributo especificado MAX(<atributo>) - Máximo dos valores do atributo especificado MIN(<atributo>) - Mínimo dos valores do atributo especificado SUM(<atributo>) - Somatório dos valores do atributo especificado COUNT(*) - Conta o número de tuplos daquele conjunto EXEMPLOS: Número de actores que tenho na minha base de dados. SELECT COUNT(*) FROM ACTOR; Número de actores de cada país. SELECT COUNT(*) FROM ACTOR GROUP BY NACIONALIDADE; 38

39 SQL Linguagem de Manipulação de Dados (LMD) Número de actores dos EUA SELECT COUNT(*) FROM ACTOR WHERE NACIONALIDADE LIKE EUA GROUP BY NACIONALIDADE; Titulo do filme mais antigo realizado por um realizador português. SELECT MIN(ANO), TITULO FROM FILME, REALIZADOR WHERE (FILME.REALIZADOR=REALIZADOR.COD AND REALIZADOR.NACIONALIDADE LIKE PORTUGUESA ) GROUP BY FILME.REALIZADOR; Escolha dos Grupos, com recurso à cláusula HAVING A escolha dos grupos pode ser baseada numa propriedade de agregação do grupo HAVING <condição> Exemplo Actor(nome, morada, sexo, nascimento) Filme(titulo, ano, duracao, a_cores, estudio, produtor) Participa(filme, ano, actor, salario) Estudio(nome, morada, presidente) Executivo(#certificado, nome, morada, salario) 39

40 SQL Linguagem de Manipulação de Dados (LMD) Qual a soma das durações dos filmes produzidos por um produtor que produziu pelo menos um filme antes de 1930? SELECT NOME, SUM(DURACAO) FROM EXECUTIVO, FILME WHERE PRODUTOR=#CERTIFICADO HAVING MIN(ANO)<1930; Encontrar o salário do actor com o salário mais baixo, superior a , para cada ano com pelo menos 2 actores nessas condições. SELECT ANO, MIN(SALARIO) FROM PARTICIPA WHERE SALARIO> GROUP BY ANO HAVING COUNT(*)>1; 40

41 SQL Server Procedures Um procedimento é um conjunto de operações que são armazenadas na base de dados identificados por um nome, e que podem ser executados sempre que for necessário. Para além disso, um procedimento pode retornar um determinado valor. As operações são especificadas através de instruções em SQL. Criação de uma PROCEDURE: CREATE PROCEDURE <NOME> AS... [RETURN <VALOR>] GO Eliminação de uma PROCEDURE: DROP PROCEDURE <NOME> Execução de uma PROCEDURE: INTEGER <ARGUMENTO1>,<ARGUMENTO2>,...,<ARGUMENTON> GO 41

42 SQL Server Procedures Mais algumas instruções... Permite atribuir um determinado valor a uma variável. RETURN 2; Retorna o valor 2 da procedure. PRINT Mensagem Visualiza uma mensagem no ecrã. 42

43 SQL Server Anexos Nesta secção pretende-se apresentar alguns exemplos sobre os conteúdos apresentados anteriormente. Os exemplos apresentados basearam-se no esquema relacional apresentado na página 39 da presente documentação. Trigger s: Criar um trigger que impeça a possibilidade de um actor participar em mais do que 4 filmes e auferir um salário médio superior a drop trigger exemplo1 go create trigger exemplo1 on participa for insert, update as int from participa order by actor having avg(salario)> begin rollback end else begin print Inserção Sucedida! end go 43

44 SQL Server Anexos (Continuação) Cursores: Um cursor é uma relação virtual, decorrente de uma instrução em SQL. EXEMPLO: /* Cria o cursor*/ declare actores cursor for select * from actor /* Abre o cursor*/ open actores /* Percorre o cursor*/ while begin /* Avança para o próximo tuplo*/ fetch next from actores end /* Fecha o cursor*/ close actores /*Elimina o cursor da memória */ deallocate actores 44

45 SQL Server Anexos (Continuação) Procedimentos: Criar um procedimento que permita determinar a média do salário de um determinado empregado cujo código é passado como argumento. create procedure integer as real avg(salario) from participa where group by actor return media go NOTA: Podem-se definir argumentos para como OUTPUT, assim, podem receber valores que poderão ser lidos fora do procedimento. Exemplo: create procedure output as real avg(salario) from participa where group by actor return media go Invocação: real execute up_pcomp output GO 45

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

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte I) Introdução

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

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

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia Bases de Dados 2012/2013 Restrições de Integridade em SQL Helena Galhardas Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 1 Sumário Restrições de Integridade (RIs) em SQL Chave

Leia mais

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las?

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Linguagem SQL Parte I

Linguagem SQL Parte I FIB - Centro Universitário da Bahia Banco de Dados Linguagem SQL Parte I Francisco Rodrigues Santos chicowebmail@yahoo.com.br Slides gentilmente cedidos por André Vinicius R. P. Nascimento Conteúdo A Linguagem

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents Banco de dados Linguagens de Banco de Dados II 1 Linguagem de Definição de Dados - DDL Comandos utilizados para criação do esquema de dados; Um DDL permite ao utilizador definir tabelas novas e elementos

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

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

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

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro ! Transact-SQL (T-SQL) Extensão ao SQL Permite controlo do fluxo de execução Permite comandos DDL (contrariamente ao PLSQL) T-SQL combina: poder de manipulação de dados

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

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

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) SQL-Breve Histórico : # CREATE, ALTER e DROP; # BEGIN TRANSACTION, ROLLBACK e COMMIT; # GRANT, REVOKE e DENY; 1 Structured Query Language (SQL) Desenvolvida pelo departamento

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

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

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As Exemplos de Vistas SQL Considere-se a vista (com o nome todososconsumidores) contento os nomes das agências e seus clientes CREATE VIEW todososclientes As Π nomebalcao,nomecliente (temconta conta) Π nomebalcao,nomecliente

Leia mais

SQL. Structured Query Language

SQL. Structured Query Language SQL Structured Query Language Construções básicas Junção de Tabelas Join O uso da operação JOIN numa cláusula FROM especifica como se deseja que as tabelas sejam vinculadas. Use INNER JOIN para associar

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro !"#$ Excepção: condição de erro; quando ocorre o erro é levantada uma excepção que interrompe o fluxo normal de execução do programa e o direcciona para uma rotina de tratamento

Leia mais

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

Linguagem SQL (Parte II)

Linguagem SQL (Parte II) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte II Introdução

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Tarefa Orientada 20 Cursores

Tarefa Orientada 20 Cursores Tarefa Orientada 20 Cursores Objectivos: Declarar cursores Utilizar cursores Utilizar funções do sistema para trabalhar com cursores Actualizar dados através de cursores Um cursor é um objecto da base

Leia mais

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

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

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

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos.

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos. TRIGGERS Um trigger é uma instrução que o sistema executa automaticamente como um efeito colateral de uma modificação no banco de dados. Para criar um mecanismo de trigger, temos de cumprir dois requisitos:

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

Projeto de Banco de Dados: Empresa X

Projeto de Banco de Dados: Empresa X Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados;

Leia mais

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL SQL, é uma linguagem de programação que foi desenvolvida para questionar bases de dados relacionais

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

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE e INSERT) Prof. Edson Thizon SQL SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados

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

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

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Definição do Esquema da Base de Dados Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL - Esquema da base de dados Definição das tabelas Definição das chaves primárias Definição

Leia mais

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma:

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: 1 CREATE TABLE O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: CREATE TABLE (), (

Leia mais

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

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

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

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

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

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

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 03 AT03 Diversos II Page 1 of 25 Indice EXEMPLOS COM GROUP BY E COM A CLÁUSULA HAVING - TOTALIZANDO DADOS... 3 GROUP BY... 3 Cláusula HAVING com GROUP BY... 5 ENTENDENDO

Leia mais

A compreensão do mecanismo de transações é essencial, sempre que a

A compreensão do mecanismo de transações é essencial, sempre que a Transações A compreensão do mecanismo de transações é essencial, sempre que a base de dados d servir várias clientes simultaneamente. Em SQL é possível definir explicitamente os limites de uma transação.

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

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

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

SQL: Definição de tabelas, Modificações à Base de Dados

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

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

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

Leia mais

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

Laboratório de Banco de Dados II

Laboratório de Banco de Dados II Laboratório de Banco de Dados II Esquema de um banco de dados relacional Em aulas anteriores, vocês implantaram um projeto físico de banco de dados com todos os seus elementos, inclusive tratando do projeto

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

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

Bases de Dados 2007/2008. Aula 8

Bases de Dados 2007/2008. Aula 8 Bases de Dados 2007/2008 Aula 8 1. T-SQL 2. VARIÁVEIS 3. CURSORES 4. PROCEDIMENTOS 5. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD SQL Server SGBD SQL Server Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD SQL Server Criação da Ligação ao SGBD Entrar no Microsoft SQL Server / Enterprise Manager Criar

Leia mais

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS) BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS) Prof. Edson Thizon Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema

Leia mais

SQL DDL Criando Tabelas e Restrições

SQL DDL Criando Tabelas e Restrições SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

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

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Maio de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões (Esta é a mesma base de dados que foi usada

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL (86); SQL-2 (92); SQL-3 (99) e SQL:2003 não é apenas uma linguagem de consulta! como o nome sugere...

Leia mais

O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros:

O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros: - Necessidade O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros: Os livros que custarem mais de 10, devem ver o seu preço

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

Bases de Dados 2007/2008. Aula 1. Referências

Bases de Dados 2007/2008. Aula 1. Referências Bases de Dados 2007/2008 Aula 1 Sumário 1. SQL Server 2000: configuração do acesso ao servidor. 1.1. SQL Server Service Manager. 1.2. SQL Server Enterprise Manager. 1.3. SQL Query Analyzer. 2. A base de

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO 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

Leia mais

PROVA ESPECÍFICA Cargo 04

PROVA ESPECÍFICA Cargo 04 10 PROVA ESPECÍFICA Cargo 04 QUESTÃO 21 Analise as seguintes afirmativas: I. Uma das funções de um DBA é gerenciar os mecanismos de segurança de acesso aos dados armazenados em um SGBD (Sistema Gerenciador

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL- (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

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

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

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD Oracle SGBD Oracle Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD Oracle Introdução aos SGBD Base de Dados Colecção de dados que descrevem alguma realidade Sistema de

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL-1 (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais