APONTAMENTOS DA DISCIPLINA DE BANCO DE DADOS
|
|
- Talita Azeredo Carmona
- 8 Há anos
- Visualizações:
Transcrição
1 O conteúdo neste disposto, são somente trechos identificados como mais relevantes das obras citadas nas referências bibliográficas, não tendo intuito de ser uma apostila para aprendizado, mas sim um material de consulta e apontamentos apenas para identificação dos conteúdos vistos em sala para posterior estudo nas obras indicadas. APONTAMENTOS DA DISCIPLINA DE BANCO DE DADOS Até o presente momento, seguindo os preceitos de disciplinas cursadas anteriormente, todo o armazenamento dos dados dos programas desenvolvidos ficavam unicamente restritos a memória RAM. É sabido que esta memória além de possuir restrições quanto ao espaço para armazenamento, possui também a característica de volatilidade, fazendo assim com que os dados armazenados sejam perdidos ao se desligar ou reiniciar o computador. É notório que em diversas situações temos a necessidade de armazenar os dados de forma a não perdê-los tão facilmente como em um simples desligamento do computador o qual pode acontecer até mesmo por fatores alheios a nossa vontade, como um travamento no sistema operacional, falha de hardware, falta de energia elétrica e etc. Atualmente para prover uma forma organizada e confiável de efetuar tal persistência de dados, utilizamos de Sistemas de Gerenciamento de Banco de Dados (SGBDs). DEFINIÇÕES INICIAIS Banco de Dados: é uma coleção de dados que contém informações relevantes a uma empresa. Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção ou conjunto de programas para manipular esses dados. Sistema de Banco de Dados: é a união da coleção armazenada de dados relevantes a uma empresa com os programas responsáveis por efetuar a manipulação destes dados. Objetivos de um SGBD: Fornecer mecanismos para gerenciar informações de bancos de dados, conveniente e eficientemente. Gerenciar grandes blocos de informações. O gerenciamento envolve definição de estruturas para armazenamento, mecanismos para manipulação, garantias de segurança contra falhas e contra acessos indevidos. Fornecer uma visão abstrata dos dados, ocultando certos detalhes de como os dados são armazenados, com intuito de facilitar o desenvolvimento de sistemas mais complexos. Exemplos de SGBDs: MySQL e Oracle Database mantidos pela Oracle Corporation, MariaDB Mantido pela MariaDB Community, Firebird mantido pela Firebird Project, Paradox Corel Corporation, Interbase mantido pela Embarcadero, PostgreSQL mantido pela PostgreSQL Development Group, SQL Server da Microsoft, DB2 e Informix da IBM, Advantage Database Server (ADS) da Sybase. Nos primórdios da computação, momento em que não haviam ainda os SGBDs como os conhecemos hoje, a mesma necessidade de persistência de dados foi identificada, e a partir daí surgiram ideias e consequentes implementações que visavam sanar tal deficiência. A mais relevante profneto_ti@hotmail.com 1-17
2 destas, consistia no salvamento de dados através da utilização de arquivos de sistema operacional. Problemas deste tipo de SGBD baseado em arquivos de Sistema Operacional: Redundância e inconsistência; Dificuldade de acesso aos dados; Isolamento de dados; Problemas de integridade; Problema de atomicidade; Acesso concorrente; Problemas de segurança. ABSTRAÇÃO DE DADOS Nivel Físico: Possui um nível mais baixo de abstração, que descreve como os dados são realmente armazenados, ou seja, as estruturas de dados complexas de baixo nível. Nível Lógico: Nível logo mais alto que o físico, descreve que dados estão armazenados e que relações existem entre eles. Utilizado por administradores de banco de dados (DBAs) a fim de decidir que informações armazenar. Nível View ou visão do usuário: Nível mais alto de abstração que descreve apenas parte de um banco de dados. Faz-se necessário pois mesmo existindo o nível lógico, este ainda apresenta muitas informações das quais determinados usuários podem não ter necessidade. O sistema pode fornecer muitas visões para o mesmo banco de dados. Esquema: Projeto geral do banco de dados; Instância: Coleção das informações armazenadas no banco de dados em determinado momento, ou seja, uma espécie de retrato da situação atual do banco de dados. Os sistemas de banco de dados possuem vários esquemas particionados de acordo com os níveis de abstração: esquema físico (Nível físico), esquema lógico (Nível lógico) e subesquemas para nível de visão. MODELOS DE DADOS Um modelo de dados oferece uma maneira de descrever o projeto de um banco de dados em diferentes níveis de acordo com a necessidade. São vistos como uma coleção de ferramentas conceituais usadas para descrever dados, suas relações, semântica e restrições. Ou uma coleção de conceitos que podem ser usados para descrever a estrutura de um banco de dados. MODELO RELACIONAL: Um modelo de nível lógico, o qual utiliza uma coleção de tabelas para representar os dados e as relações entre eles. Este modelo baseado em registros é considerado o principal modelo de dados para aplicações comerciais, sendo a maioria dos sistemas de banco de dados atuais baseados neste modelo. Neste modelo as colunas da tabela correspondem aos atributos de tipo. MODELO ENTIDADE/RELACIONAMENTO: Modelo conceitual, formados por uma coleção de objetos básicos chamados Entidades e suas relações. Uma entidade é uma coisa ou objeto no mundo real que é distinguível dos profneto_ti@hotmail.com 2-17
3 outros objetos. Fortemente empregado no projeto de banco de dados. MODELO DE DADOS BASEADO EM OBJETOS. Modelo conceitual. Pode ser visto como uma extensão do modelo E/R com maior apelo ao paradigma de orientação a objetos, utilizando encapsulamento, métodos e identidade de objetos. MODELO DE DADOS SEMI-ESTRUTURADO: Um modelo que se opõe aos modelos de dados anteriores. XML é utilizado para representar tais tipos de dados. MODELO RELACIONAL Considerado um modelo de grande simplicidade e eficiência, devido a isso, acaba por ser o mais empregado em SGBDs para aplicações comerciais gerais. Estrutura dos Bancos de dados relacionais: Consiste em uma coleção de tabelas, cada uma com um nome único atribuído. Cada linha na tabela representa uma relação entre um conjunto de valores. Os cabeçalhos (nome das colunas) são denominados atributos e cada cabeçalho deve possuir um nome único dentro da tabela. Cada atributo possui um conjunto de valores permitido, que é o domínio deste atributo. Uma tabela com 3 (três) atributos é composta por 3 (três) domínios diferentes e cada linha então deve ser formada por 3 valores segundo o domínio. Os matemáticos definem relação como sendo um subconjunto de um produto cartesiano de uma lista de domínios Termos tabela, linha e Coluna normalmente são substituídos por Relação, Tupla e Atributo respectivamente. Uma tabela de N atributos precisa ser um subconjunto de D1 X D2 X...X DN A ordem que as tuplas aparecem na relação, é irrelevante, já que a relação é um conjunto de tuplas, assim, duas relações são as mesmas se possuírem o mesmo conjunto de tuplas em ordem qualquer. Fazendo uma comparação um tanto superficial do modelo relacional com a linguagem de programação estudada até o momento, podemos dizer que uma relação é similar a criação de uma variável, já o esquema de relação simboliza uma definição de tipo em nossa linguagem de programação. Em geral, um esquema de relação consiste em uma lista dos atributos e seus domínios correspondentes e uma relação é instanciada a partir do esquema de relação criado. Atenção, para melhor padronização da escrita de relações e de esquemas de relações devemos: Usar nomes em letras minúsculas para relações. Nomes iniciando com uma letra maiúscula para esquemas de relação Exemplo de Esquema de relação denominado Esquema_conta e de relação denominado conta: profneto_ti@hotmail.com 3-17
4 Esquema_conta = (numero_conta, nome_agencia, saldo); conta(esquema_conta); Na maioria dos casos, para desenvolver a estrutura de um banco de dados, necessitamos criar mais de um esquema de relação diferente, cada um com a finalidade de armazenar dados referentes ao mesmo conjunto, ou seja, dados que juntos sejam capazes de identificar ou representar atributos de algo. Muitas vezes somos tentados a criar um esquema geral, que acabe por englobar todos os atributos identificados no levantamento de atributos do banco de dados, mas este procedimento deve ser minuciosamente analisado, pois, na maioria das vezes acaba sendo necessário inserir itens imutáveis em toda inserção de nova tupla o que pode acarretar em redundância, inconsistência e desperdício de espaço de armazenamento em nosso banco de dados. CHAVES É preciso ter uma maneira de especificar como as tuplas dentro de uma determinada relação são distinguidas. Isto é expresso em termos de seus atributos. Assim, nenhum par de tuplas em uma relação pode ter exatamente o mesmo valor para todos os atributos. Analisar todas as combinações de pares de tuplas possíveis em uma relação é uma ação bastante custosa. Para diminuir este consumo desnecessário de recursos e visando a otimização do sistema, a utilização de chaves, principalmente a primária, faz-se necessária. Superchave: é um conjunto de um ou mais atributos que, tomados coletivamente, nos permite identificar unicamente uma tupla na relação. Porém este conceito não nos auxilia com a redução no consumo de recursos necessários, visto que se K é uma superchave, então também será uma superchave qualquer superconjunto de K. Assim, temos interesse maior em superchaves mínimas, denominadas chaves candidatas ou chave primária (primary key). Uma chave primária é uma propriedade da relação como um todo e não da tupla individualmente. Para a criação da chave primária não se deve escolher atributos que possam ser repetidos ou que venham a sofrer mudanças, desta forma nenhum par de tuplas da relação pode ter o mesmo valor nos atributos da chave primária ao mesmo tempo. A designação de uma chave primária representa uma restrição constante na empresa real sendo modelada, por isso devem ser escolhidas com cuidado e observado para atender as regras de negócio desta empresa sem infligi-las. Por padrão, os atributos de chave primária de um esquema de relação devem ser listados primeiro e receberem o sublinhado. Exemplo de Esquema de relação com identificação de chave primária: Esquema_conta = (numero_conta, nome_agencia, saldo); Existem duas categorias de chave primária: Natural: formada por um ou mais atributos que fazem parte do negócio modelado. Artificial: Atributo que não representa nenhuma propriedade do negócio. profneto_ti@hotmail.com 4-17
5 Um exemplo de chave primária natural em um projeto de banco de dados voltado a cadastro de clientes de um banco, poderia ser a utilização de um dado pessoal do cliente como o CPF. Já uma chave primária artificial poderia ser obtida inserindo um código auto-incrementado, gerado pelo próprio banco de dados. CHAVE ESTRANGEIRA: Uma relação R1, pode incluir dentre seus atributos a chave primária de outra relação R2, esse atributo é denominado Chave Estrangeira (Foreign Key). R1 então é denominada relação referenciadora e R2 relação referenciada. Em qualquer instância do banco de dados, dado qualquer tupla da relação referenciadora deverá haver alguma tupla na relação referenciada tal que o valor do atributo de chave estrangeira seja igual à chave primária da referenciada. DIAGRAMA DE ESQUEMAS: Para demonstrar esquemas de relações utilizamos o diagrama de esquemas devido a sua simplicidade e agilidade de diagramação. É um diagrama bastante superficial, responsável apenas por identificar nome de relações e atributos, e quais destes últimos são chaves primária e estrangeira, além de demonstrar os relacionamentos. Consistem em uma representação gráfica dos esquemas a serem criados no banco de dados. Vantagens: Rápida construção; Simples entendimento; Muitas ferramentas permitem a geração de boa parte do banco de dados, apenas utilizando do diagrama de esquemas; Desvantagens: Estrutura muito superficial; Não indica exatamente os itens que serão constados como chave estrangeira; EXERCÍCIOS: 1. Qual a utilidade da chave primária? 2. Por que uma chave candidata não é considerada útil na implementação de um banco de dados? 3. De que forma a chave primária ajuda a reduzir o processamento em operações de consulta? 4. Por que endereço, nome, nome da mãe, são exemplos de atributos que não devem ser indicados como chave primária? INTRODUÇÃO A LINGUAGEM SQL (Structured Query Language) SQL é uma linguagem primordialmente voltada a consultas, porém permite fazer muito mais do que simplesmente consultas a dados. Foi desenvolvida inicialmente pela IBM na década de 1970 e chamava-se Sequel, porém, a partir de 1986 deu-se inicio a sua padronização pelo ANSI profneto_ti@hotmail.com 5-17
6 (American National Stardards Institute) e sua nomenclatura acabou sendo modificada. Esta linguagem é divida em várias partes como: Linguagem de definição de dados (DDL), Linguagem de manipulação de dados (DML), integridade, definição de visões, controle de transação, SQL embutida e SQL dinâmica, Autorizações. LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL DATA DEFINITION LANGUAGE) A DDL permite a especificação não só de um conjunto de relações, mas também de informações sobre cada relação, como atributos, seus nomes e domínios Tipos básicos: CHAR(n) ou CHARACTER(n): define uma string de caracteres de tamanho fixo n. VARCHAR(n): define uma string de caracteres de tamanho variável até o tamanho máximo n. INT ou INTEGER: define um número inteiro. SMALLINT: um inteiro pequeno. NUMERIC(p,d): número de ponto fixo com precisão especificada pelo usuário, com p dígitos totais incluindo um sinal e d dígitos a direita da vírgula. REAL, DOUBLE PRECISION: números de ponto flutuante e dupla precisão. FLOAT(n): número de ponto flutuante com precisão de pelo menos n dígitos. DATE: Formato com herança de string, na verdade o formato DATE é um string contendo 10 (dez) caracteres e formatação predefinida YYYY-MM-DD. Esta espécie de máscara pode variar de acordo com configurações do Sistema Operacional e também do SGBD. TIME: Similar ao tipo DATE, porém com apenas 8 (oito) caracteres e máscara padrão HH:MM:SS. Observação: Dependendo o SGBD adotado, comparações entre atributos do tipo CHAR e VARCHAR podem não retornar corretamente. Tipos como DATE e TIME podem variar sua máscara padrão de acordo com o idioma adotado pelo Sistema Operacional ou pelo SGBD. DEFINIÇÃO BÁSICA DE RELAÇÕES (ESQUEMAS): Uma relação é definida a partir do comando CREATE TABLE, e após isto se deve passar como parâmetro cada atributo, aqui nomeado com a letra A e o domínio (tipo de dado) ao qual este atributo estará relacionado. Ao final deve-se explicitar as restrições de integridade, caso existam. Exemplo: CREATE TABLE <nome_relação> (A1 D1, A2 D2, <restrição de integridade 1>,... <restrição de integridade N>); Podemos efetuar a exclusão de uma relação já criada através do comando DROP TABLE. Deve-se compreender que devido a este comando excluir toda a relação, os dados presentes nesta também serão excluídos. DROP TABLE <nome_relação>; profneto_ti@hotmail.com 6-17
7 Além da criação e exclusão de relações, em determinados momentos possuímos a necessidade de efetuar modificações na estrutura de alguma relação já criada, seja por mudança na regra de negócio, melhor adequação a esta ou mesmo por falha/esquecimento no momento da criação desta relação. Para evitar que seja necessário efetuar a exclusão desta relação, o que resultaria na consequente exclusão de dados já inseridos nesta, podemos utilizar de um comando pertencente a DDL que efetua a inserção e remoção de atributos de uma relação, respectivamente: ALTER TABLE <relação> ADD <atributo> <domínio>; ALTER TABLE <relação> DROP <atributo>; Mais a frente veremos o comando ALTER TABLE de forma avançada, o que nos permitirá não somente adicionar atributos, como também manipular restrições. RESTRIÇÕES MAIS COMUNS: Chave primária (Primary Key): Indica quais atributos formarão a chave primária da relação. É necessário que estes atributos sejam não nulos e únicos e não sofram mudanças. Chave estrangeira (Foreign Key): Deve corresponder aos valores dos atributos de chave primária de alguma tupla da relação referenciada. Sem essa restrição é possível que um campo (atributo) seja especificado em desacordo com uma tabela a qual deveria restringir domínios; Existe uma forma de permitir que determinados atributos não possuam valores nulos, ou seja, utilizando a cláusula NOT NULL excluímos o valor nulo do domínio do atributo. No exemplo abaixo, o atributo A1 não permite que o usuário deixe este valor nulo no momento da inclusão de um novo registro (tupla) ou na atualização de um já existente, porém, por não possuir o parâmetro NOT NULL, o atributo A2 o permite. Exemplo: CREATE TABLE <nome_relação> (A1 D1 NOT NULL, A2 D2, PRIMARY KEY(A1), FOREIGN KEY(A2) REFERENCES <relação_referenciada> (<atributo_referenciado); Por padrão a SQL não permite que instruções de atualização de banco de dados efetuem a violação de uma restrição de integridade, assim no momento que houver uma tentativa disso, a SQL acusará um erro e impedirá a atualização. LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML DATA MANIPULATION LANGUAGE) A DML é responsável por efetuar operações sobre os dados presentes ou a serem inseridos profneto_ti@hotmail.com 7-17
8 nas relações. Para inserir elementos em uma relação devemos utilizar o comando INSERT INTO, indicando ao menos qual relação será afetada e quais os valores a serem inseridos. INSERT INTO <relação> (A1,...An) VALUES (v1,..., vn); OU INSERT INTO <relação> VALUES (v1,..., vn); No primeiro caso, é necessário que se passe explicitamente, logo após o nome da relação, quais os atributos que serão inseridos, e após a palavra VALUES, quais os valores EM ORDEM para cada atributo explicitado anteriormente. No segundo caso, por não explicitar quais atributos serão objeto de inserção, o SGBD admite que TODOS deverão possuir um valor de entrada, assim, após a palavra VALUES o usuário deverá passar os valores para TODOS os atributos da relação a ser modificada, observando a ordem de criação de tais atributos. O comando DELETE tem como objetivo efetuar a exclusão de tuplas de uma relação, mas mantendo o esquema de relação. O comando DELETE também comporta o teste condicional advindo da inserção da cláusula WHERE, a qual será explicada mais adiante durante o tópico referente a consultas em SQL. Caso o comando DELETE não seja seguido de uma cláusula WHERE que restrinja as tuplas a sofrerem a exclusão, TODAS as tuplas da relação selecionada serão excluídas, ou seja, todos os dados armazenados nesta tabela. DELETE FROM <nome_relação>; A DML ainda conta com um comando para efetuar a alteração em dados já anteriormente inseridos em uma relação. O comando UPDATE atualiza o valor de determinado atributo de uma relação que satisfaça uma condição presente na cláusula WHERE, para um valor passado como parâmetro pelo usuário; UPDATE <nome_relação> SET <atributo> = <valor> WHERE <condição>; ESTRUTURA BÁSICA DAS CONSULTAS SQL: Para efetuar uma consulta SQL, necessitamos basicamente de 3 (três) cláusulas, SELECT, FROM e WHERE, sendo esta última opcional. SELECT: utilizado para listar os atributos desejados no resultado de uma consulta; FROM: lista das relações a serem acessadas pela consulta; WHERE: predicado envolvendo atributos da relação na cláusula FROM. Um comando adicional ORDER BY pode ser utilizado ao final de toda a estrutura da consulta com finalidade de apresentar os dados em ordem crescente <ASC> ou decrescente <DESC> segundo determinado(s) atributo(s). Caso esta cláusula seja omitida, por padrão os dados serão exibidos em ordem crescente segundo o atributo mais importante. profneto_ti@hotmail.com 8-17
9 A consulta toma como entrada a(s) relação(ões) listada(s) na cláusula FROM, opera sobre ela(s) de acordo com SELECT e WHERE e depois produz uma relação temporária semelhante a(s) relação(ões) inicial(ais) como resultado. Assim a(s) relação(ões) base permanece(m) inalterada(s). O operador * (asterisco), quando posicionado entre as cláusulas SELECT e FROM, indica que deverão ser selecionados todos os campos (atributos) desta relação. Desta forma não temos a necessidade de listar todos os atributos, um a um que deverão fazer parte da relação resultante, o que economiza tempo, facilita a digitação, evita erros e melhora a leitura da instrução. Consulta sobre uma única relação: Estrutura de uma consulta. SELECT <atributo> FROM <relação> WHERE <teste_condicional> ORDER BY <atributo> ASC/DESC; Em alguns casos, podemos listar elementos repetidos em relações. A SQL normalmente trata uma relação como um multiconjunto, assim tuplas duplicadas podem aparecer mais de uma vez em uma rabela e no resultado de uma consulta. Estes resultados duplicados não são eliminados automaticamente devido: Ser uma operação dispendiosa, pois envolve os passos de classificar os dados, identificar e eliminar tuplas duplicadas. O usuário pode realmente querer ver as tuplas duplicadas. Para forçar a eliminação das duplicatas, inserimos a palavra DISTINCT após SELECT. SELECT DISTINCT <atributo> FROM <relação>; A SQL permite a utilização de operadores aritméticos + (adição), - (subtração), * (multiplicação), / (divisão), operadores lógicos AND, OR, NOT e operadores de comparação >, <, >=, <=, <>. = Todos estes são frequentemente utilizados dentro de pesquisas SQL. SELECT <atributos> FROM <relação> WHERE <atributo> > 10; Para simplificar o desenvolvimento de expressões onde existam margem mínima e máxima para se efetuar uma consulta, utilizamos a função BETWEEN. Esta função especifica que o valor procurado deve estar posicionado entre dois outros valores, suprimindo assim a necessidade de digitar os operadores >= e =<. Assim para efetuar uma consulta em uma relação denominada PRODUTO, a fim de listar a descrição dos produtos com quantidade em estoque entre 10 e 100 unidades teríamos: SELECT DescProduto FROM PRODUTO WHERE QntdProduto >= 10 AND QntdProduto <= 100; OU profneto_ti@hotmail.com 9-17
10 SELECT DescProduto FROM PRODUTO WHERE QntdProduto BETWEEN 10 AND 100; Consulta sobre múltiplas relações: A consulta sobre múltiplas relações toma por base os mesmos princípios adotados na consulta sobre relações individuais. SELECT <atributo1, atributo2, atributon> FROM <relação, relação2, relaçãon>; Deve-se observar que a utilização da cláusula FROM isolada, define um produto cartesiano das relações listadas. Caso haja o mesmo nome de atributo em mais de uma relação referenciada por FROM, é necessário especificar explicitamente antes do atributo a qual relação este pertence. SELECT <R1.A1, R2.A1> FROM R1, R2; NATURAL JOIN: Fornece o mesmo resultado da realização de um produto cartesiano restrito através da cláusula WHERE. Para que este comando funcione corretamente, ele necessita que somente os atributos a serem comparados, ou seja, chave primária da relação referenciada e chave estrangeira da relação referenciadora, tenham nomes idênticos. SELECT <atributo1, atributo2: FROM <relação1> NATURAL JOIN <relação2>; ESPECIFICAÇÕES E RESTRIÇÕES DE ATRIBUTOS Cláusula DEFAULT: Empregada durante a criação de atributos no momento da especificação da relação (CREATE TABLE). Descreve que um determinado valor padrão será setado ao atributo caso no momento da inserção de dados este não seja fornecido pelo usuário. Cláusula CHECK: Responsável por verificar no momento da inserção ou atualização de dados, se determinado atributo satisfaz a condição preestabelecida por este. CREATE TABLE <nome_relação>( A1 D1 NOT NULL, A2 D2 DEFAULT <valor>, A3 D3 CHECK(A3 <condição>), <restrições_de_integridade>); Criação de Domínios (DOMAIN) Além da possibilidade de especificar o tipo de dado para cada atributo individualmente, profneto_ti@hotmail.com 10-17
11 pode-se utilizar a declaração de um domínio e seu nome utilizado como propriedade de atributos. Isto facilita o entendimento, padronização e consequentemente a manutenção de banco de dados. CREATE DOMAIN <nome_domínio> AS <tipo>; Infelizmente o SGBD MySQL na versão a qual foi escolhida para o desenvolvimento da disciplina, não dá suporte a criação de domínios (DOMAIN) e a cláusula CHECK mesmo sendo suportada, não efetua realmente o teste necessário, estando presente neste SGBD unicamente para efeito de compatibilidade com bancos de dados criados por outros SGBDs. Talvez em versões posteriores tais ferramentas possam ser implementadas e estarem presentes neste. VALORES NULOS: Utilizamos NULL para representar valores faltantes, o que pode assumir uma das seguintes condições: Valor Desconhecido: Data de nascimento de uma pessoa pode não ser conhecida; Valor indisponível ou retido: Uma pessoa possui um telefone mas omite seu número; Atributo não aplicável: Valor do atributo cônjuge NULL para pessoa solteira; Valores nulos apresentam problemas especiais nas operações relacionais: Operações aritméticas ( + - * / ): O resultado será nulo se qualquer um dos valores de entrada for nulo; Comparações (>, <, >=, <=, =, <>): A SQL trata como UNKNOW (desconhecido) o resultado de qualquer comparação feita envolvendo um valor nulo. Operações lógicas: Para casos onde existam operações lógicas envolvendo valores nulos, a SQL utiliza uma lógica de três valores, sendo eles TRUE, FALSE e UNKWNOW; A N D TRUE FALSE UNKNOWN TRUE TRUE FALSE UNKNOWN FALSE FALSE FALSE FALSE UNKNOWN UNKNOWN FALSE UNKNOWN O R TRUE FALSE UNKNOWN TRUE TRUE TRUE TRUE FALSE TRUE FALSE UNKNOWN UNKNOWN TRUE UNKNOWN UNKNOWN N O T TRUE FALSE FALSE TRUE UNKNOWN UNKNOWN profneto_ti@hotmail.com 11-17
12 A SQL permite consultas para verificar se um valor de atributo é nulo (IS NULL) ou não (IS NOT NULL) SELECT * FROM CLIENTES WHERE Telefone IS NULL; OU SELECT * FROM CLIENTES WHERE Telefone IS NOT NULL; RESTRIÇÕES DE CHAVE E INTEGRIDADE REFERENCIAL: Cláusula UNIQUE Especifica uma chave secundária sendo possível sua utilização diretamente a frente do atributo, caso este seja único. Note que uma coluna que seja especificada como chave primária também deve ser única, porém um atributo definido como UNIQUE pode não ser ou mesmo não fazer parte de uma Chave Primária. É possível definir várias restrições UNIQUE em uma mesma relação. Integridade referencial é especificada por meio da cláusula FOREIGN KEY. Esta integridade pode ser violada quando tuplas são inseridas ou excluídas ou quando um valor de chave primária ou estrangeira é modificado. Por padrão, a SQL rejeita a operação que produza tal violação e esta ação é denominada RESTRICT. Porém, podemos modificar este comportamento padrão através da inclusão de cláusulas de tratamento de violação de integridade referencial, sendo elas: SET NULL: Atualiza o campo da chave estrangeira para um valor nulo (NULL), caso o item de chave primária da relação referenciada seja atualizado ou excluído. SET DEFAULT: Possui comportamento semelhante ao SET NULL, porém atualiza o campo de chave estrangeira para um valor predefinido. CASCADE: Modifica o valor para os atributos de chave estrangeira de referência para o novo valor atualizado na chave primária da relação referenciada. ON DELETE: na exclusão ON UPDATE: na atualização As cláusulas SET NULL, SET DEFAULT e CASCADE indicam a ação a ser realizada, já as cláusulas ON DELETE e ON UPDATE indicam o momento em que esta ação deverá ser realizada. AUTO_INCREMENT Controla o incremento em campos de chave primária e não faz parte da SQL padrão, sendo então um comando próprio do SGBD MySQL. Outros SGBDs utilizam formas diferentes desta porém com a mesma finalidade. Cuidado, ao excluir tuplas este campo continua seu incremento sem reajustar seus valores, sendo então desaconselhável sua utilização em campos que possam gerar sequencias muito grandes em tipos de dados que não sejam capazes de suportá-las, como o caso de SMALLINT. profneto_ti@hotmail.com 12-17
13 ALTER TABLE AVANÇADO: Como visto anteriormente, o comando ALTER TABLE permite fazer modificações na estrutura de uma relação (tabela). Normalmente este comando acaba por ser muito utilizado principalmente para a criação de restrições, permitindo maior controle sobre estas, como por exemplo a criação de nomes individuais, o que permite maior controle e facilidade para manutenção das mesmas. Adicionar/Remover Atributo: Renomear Tabela Modificar Tipos ALTER TABLE <Tabela> ADD <Atributo> <Tipo>; ALTER TABLE <Tabela> DROP <Atributo>; ALTER TABLE <Tabela> RENAME <Novo_Nome>; ALTER TABLE <Tabela> MODIFY COLUMN <Atributo> <Novo_Tipo> <Restrição>; Restrições: ALTER TABLE <Tabela> ADD CONSTRAINT <Nome_Restrição> <Restrição>; ALTER TABLE <Tabela> DROP CONSTRAINT <Nome_Restrição>; Chave Primária: ALTER TABLE <Tabela> ADD CONSTRAINT <Nome_Restrição> PRIMARY KEY (<Atributo>); Chave Estrangeira ALTER TABLE <Tabela> DROP CONSTRAINT <Nome_Restrição> ALTER TABLE <Tabela> ADD PRIMARY KEY; ALTER TABLE <Tabela> ADD CONSTRAINT <Nome_Restrição> FOREIGN KEY (<Atributo>) REFERENCES <Tabela> (<Atributo>); ALTER TABLE <Tabela> DROP CONSTRAINT <Nome_Restrição>; OU (MySQL) ALTER TABLE <Tabela> DROP FOREIGN KEY <Nome_Restrição>; profneto_ti@hotmail.com 13-17
14 Chave secundária ALTER TABLE <Tabela> ADD CONSTRAINT <Nome_Restrição> UNIQUE (<Atributos>); SUBCADEIAS E OPERADORES: A SQL possui operadores com finalidade específica para efetuar comparações apenas sobre partes de uma cadeia de caracteres, sendo eles: LIKE: responsável por indicar a operação que será realizada sobre determinada subcadeia (substring). %: Substitui um número qualquer de caracteres, de zero até a quantidade máxima suportada pela cadeia completa. _ (Underline ou sublinhado): Substitui um único caractere. CRIAÇÃO DE APELIDOS (ALIAS): A criação de apelidos é útil para auxiliar-nos na tarefa de evitar ambiguidade e principalmente para agilizar a digitação através da substituição de nomes extensos por apelidos mais compactos. Para isso, basta dentro da cláusula FROM informar o nome real da relação seguido da cláusula AS e por fim o apelido adotado. SELECT F.Nome, F.Bonus, C.Salario FROM FUNCIONARIO, AS F, CARGO AS C WHERE F.Codcargo = F.Codcargo; Os apelidos podem ser utilizados também para melhor apresentar um campo ao usuário, alterando somente para efeito de visualização o nome padrão de um atributo, por um nome parametrizado durante o SELECT; SELECT Nome AS NomeCompleto FROM FUNCIONARIO; FUNÇÕES DE AGREGAÇÃO EM SQL: Usadas para resumir informações de várias tuplas em uma síntese de tupla única. COUNT(<atributo>) Retorna o número de tuplas ou valores. SUM(<atributo>) Efetua a soma dos valores dos atributos de todos os elementos pertencentes a relação resultante. Similarmente a SUM(), temos as funções MAX(), MIN() e AVG() que retornam o valor máximo, valor mínimo e média aritmética dos valores dos atributos de todos os elementos pertencentes a relação resultante, respectivamente. SELECT COUNT(<atributo>), SUM(<atributo>), profneto_ti@hotmail.com 14-17
15 MAX(<atributo>), MIN(<atributo>), AVG(<atributo>) FROM <relação>; AGRUPAMENTO: Cláusula GROUP BY: Aplicada em casos de funções de agregação a subgrupos de tuplas de uma relação a qual os subgrupos são baseados em algum valor de atributo. Assim, é executado então o particionamento da relação em subconjuntos de tuplas. Cada grupo consistirá em tuplas que possuam o mesmo valor de determinados atributos denominados atributos de agrupamento. SELECT <atributo> FROM <tabela> GROUP BY <atributo_de_agrupamento>; OUTRAS FUNÇÕES SQL: Para apresentar os dados do tipo CHAR/VARCHAR de forma padronizada de caixa alta/baixa (maiúsculas/minúsculas) existem as funções UCASE() e LCASE() respectivamente. SELECT UCASE(DescProduto FROM PRODUTO; SELECT LCASE(DescProduto) FROM PRODUTO; Em determinados momentos necessitamos saber o comprimento de determinada string existente em um atributo, para isso utilizamos da função LENGH(). SELECT DescProduto AS DESCRIÇÃO, LENGTH(DescProduto) AS TAMANHO_STRING FROM PRODUTO; TRIGGERS (GATILHOS): Triggers ou gatilhos são utilizados para especificar ações automáticas que o sistema de banco de dados realizará quando determinados eventos e condições ocorrerem. Eles fazem parte de uma categoria específica denominada Bancos de Dados Ativos. Todo trigger deve receber um nome para que seja possível removê-lo ou desativá-lo posteriormente. Um trigger típico é formado por 3 (três) componentes: 1. EVENTO: Operações de atualização no banco de dados, aplicadas explicitamente a ele. Ao escrever um trigger é preciso garantir que todos os eventos possíveis sejam considerados. Os eventos são especificados logo após a palavra-chave que indica o numero da realização do trigger AFTER (depois) ou BEFORE (antes) 2. CONDIÇÃO: Determina se a ação da regra deve ser executada; 3. AÇÃO: Normalmente é uma sequência de instruções SQL, mas tramem poderia ser uma transação de banco de dados ou um programa externo que poderia ser executado automaticamente. profneto_ti@hotmail.com 15-17
16 CREATE TRIGGER <Nome_Trigger> <Tempo> <Evento> ON <Tabela> FOR EACH ROW <Condição> <Ação>; VISÕES (VIEWS) Visões são objetos pertencentes diretamente ao banco de dados, as quais são criadas a partir de instruções SELECT. São na verdade, tabelas virtuais e são assim nomeadas devido a seu comportamento de retornar uma visão dos dados presentes nas tabelas originárias (Based Tables). As visões são armazenadas no banco de dados como tabelas e tal qual podem ser verificadas com os comandos utilizados por estas, como SHOW TABLES, DESCRIBE, etc. A estrutura básica de criação de uma visão SIMPLES é dada pelo quadro abaixo: CREATE VIEW <nome_da-view> AS <Seleção dos dados a serem visualizados>; Similarmente às tabelas, uma visão pode ser destruída com o comando DROP VIEW e alterada com o comando ALTER VIEW. Para visualizar os dados de uma visão criada, basta utilizar de uma função SELECT como o exemplo abaixo: SELECT * FROM <nome da visão> WHERE <condições>; É importante saber que como uma tabela, as visões permitem alteração nos dados apresentados, porém ao se efetuar qualquer modificação nestes, a alteração não será realizada direta e somente na visão, mas sim nas tabelas que são referenciadas por esta. Devemos nos atentar que ao criar uma visão com a utilização do operador * (asterisco) fazem com que a visão seja criada com os atributos existentes na(s) tabela(s) no exato momento da criação da visão, assim, caso haja posterior adição de campos às tabelas referenciadas, estes NÃO farão parte da visão a menos que esta seja alterada pelo desenvolvedor. As principais vantagens da utilização de visões são: Evitar retrabalho de montagem de consultas (querys); Diminuição mínima de fluxo de rede em sistemas distribuídos; Reaproveitamento de querys elaboradas para desempenho. Alguns desenvolvedores acreditam que o fato de um rotina estar previamente armazenada no banco de dados faz com que esta seja executada mais rapidamente, porém é algo bastante questionável. Apesar de havermos criado uma visão simples com o comando anteriormente citado, a criação de visões permite mais configurações que podem ser exploradas através de seu comando mais completo. CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED MERGE TEMPTABLE}] [DEFINER = { user CURRENT_USER }] profneto_ti@hotmail.com 16-17
17 VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED LOCAL] CHECK OPTION] REFERÊNCIAS BIBLIOGRÁFICAS: ELMASRI, R; NAVATHE, S. B. Sistemas de banco de dados. São Paulo, Pearson, 6ed., SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de banco de dados. Rio de Janeiro: Campus, tradução da 6ed.,
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 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 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 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 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 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 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 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 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 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 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 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 maisSQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE
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 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 maisStructured 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 maisLinguagem 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 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 maisBanco de Dados I. Introdução. Fabricio Breve
Banco de Dados I Introdução Fabricio Breve Introdução SGBD (Sistema Gerenciador de Banco de Dados): coleção de dados interrelacionados e um conjunto de programas para acessar esses dados Coleção de dados
Leia maisPersistência e Banco de Dados em Jogos Digitais
Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem
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 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 maisUNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II
UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados
Leia maisSQL. 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 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 maisUNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro
UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Integridade Carlos Eduardo Portela Serra de Castro * Integridade Introdução Restrições de Integridade de Domínio de Relação Asserções Procedimentos-gatilho
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 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 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 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 maisRoteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos
Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de
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 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 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 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 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 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 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 maisPrincípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003
Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,
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 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 maisNOME SEXO CPF NASCIMENTO SALARIO
Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento
Leia maisCapitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
Capitulo 2 1. MODELO LÓGICO DE BANCO DE DADOS... 2 1.1 Definição... 2 1.2 Mapeando o modelo conceitual para o modelo lógico... 2 1.2 Dicionário de dados... 3 2. MODELO FÍSICO DO BANCO DE DADOS... 4 2.1
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 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 maisBanco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados
Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II
UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de
Leia maisSQL é 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 maisStructured Query Language (SQL) Aula Prática
Structured Query Language (SQL) Aula Prática Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas
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 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 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, 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 maisBanco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01
Banco de Dados Módulo 7 - Modelo Relacional Definição do Esquema Relacional em SQL modulo07.prz 1 10/09/01 Introdução SQL linguagem padrão para SGBDs relacionais derivada do SEQUEL (Structured English
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 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 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 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 maisDocente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Introdução a Banco de Dados Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 12/06/2013 Sumário Motivação da Disciplina
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 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 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 maisLinguagem de Consulta - SQL
SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987
Leia maisBancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações
Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos de Dados Abstração
Leia maisBanco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.
Banco de Dados StructuredQuery Language- SQL Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 A Origem Em 1970, Ted Codd (pesquisador da IBM) publicou o primeiro
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 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: 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 maisBANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre
BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos
Leia maisIntrodução Banco de Dados
Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em
Leia maisEscrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33
Preço R$ 129.00 Compre aqui SUPER PACOTÃO 3 EM 1: 186 Vídeoaulas - 3 dvd's - 10.5 Gybabyte. 1) SQL 2) Banco de Dados (Oracle 10g, SQL Server 2005, PostgreSQL 8.2, Firebird 2.0, MySQL5.0) 3) Análise e Modelagem
Leia maisMODELO RELACIONAL - UFMA
MODELO RELACIONAL Universidade Federal do Maranhão - UFMA Departamento de Informática Projeto de Banco de Dados Profª.MSc Simara Rocha simararocha@gmail.com/simara@deinf.ufma.br www.deinf.ufma.br/~simara
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 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 maisLinguagem 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 maisProgramação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br
Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Linguagem SQL: Introdução; Construção/Definição de tabelas. 2 Linguagem SQL SQL - Structured Query Language;
Leia maisLINGUAGEM SQL. DML - Linguagem de Manipulação de Dados
LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características
Leia maisBanco de Dados I 2007. Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli
Banco de Dados I 2007 Módulo II: Modelagem Entidade- Relacionamento versus Relacional (Aula 3) Clodis Boscarioli Agenda: Exercícios de Mapeamento ME-R para MR; Restrições de Domínio; Restrições de Chave
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 maisSQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL
SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens
Leia maisPrincipal: construir uma base de dados para produção de informações sobre internações hospitalares;
Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Específicos: - criar um banco de dados para armazenar registros sobre internações hospitalares; - produzir
Leia maisORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas
ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos
Leia maisEXEMPLOS DE COMANDOS NO SQL SERVER
EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;
Leia maisAULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES
BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade
Leia maisIntrodução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos
Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária
Leia maisSQL (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 maisUma expressão básica em SQL consiste em três cláusulas: select, from e where.
Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra
Leia maisBANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com
BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,
Leia maisFACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais
FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS Bancos de Dados Conceitos Fundamentais Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos
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 maisIntrodução ao SQL Avançado
Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão
Leia maisBanco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.
Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação
Leia maisBanco 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 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 maisBanco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP
Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme
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 maisSQL. 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 maisBANCO DE DADOS CONCEITOS BÁSICOS
Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações
Leia mais