ULTI RESUMOS AMBIENTES COMPUTACIONAIS ULTIRESUMOS.COM.BR



Documentos relacionados
BANCO DE DADOS II. AULA MySQL.

Capítulo 5 Complemento. 5.1 Laudon, Cap. 5

Structured Query Language (SQL)

1. Domínio dos Atributos

Principais Comandos SQL Usados no MySql

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

LINGUAGEM DE BANCO DE DADOS

Á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:

Prof. Marcelo Machado Cunha

Disciplina de Banco de Dados Parte V

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

Comandos de Manipulação

INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP

SQL. Autor: Renata Viegas

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

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

Técnicas e Linguagens para Banco de Dados I

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

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

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC DR. EMILIO HERNANDEZ AGUILAR

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

Banco de Dados. Maurício Edgar Stivanello

Profa. Daniela Barreiro Claro

Programação SQL. Introdução

Persistência e Banco de Dados em Jogos Digitais

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

A linguagem SQL

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

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

MC536 Bancos de Dados: Teoria e Prática

Orientação a Objetos

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)

NOME SEXO CPF NASCIMENTO SALARIO

Unidade II ADMINISTRAÇÃO DE. Prof. Luiz Fernando de Lima Santos

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

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

Modelo Entidade-Relacionamento

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

ENGENHARIA DA COMPUTAÇÃO

Conceitos de Banco de Dados

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

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

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

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

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

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

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

Comandos DDL. id_modulo = id_m odulo

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

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

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

Revisão de Banco de Dados

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

Oficina. Praça das Três Caixas d Água Porto Velho - RO

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

Operação de União JOIN

Disciplina: Unidade III: Prof.: Período:

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS.

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Tarefa Orientada 16 Vistas

Prof.: Clayton Maciel Costa

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Treinamento sobre SQL

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

Profº Aldo Rocha. Banco de Dados

Disciplina: Unidade V: Prof.: Período:

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

EXERCÍCIOS PRÁTICOS. Banco de Dados

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

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Introdução Banco de Dados

Docente: Éberton da Silva Marinho

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Faculdade Lourenço Filho - ENADE

ISO/IEC 12207: Gerência de Configuração

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Sistemas Gerenciadores de Bancos de Dados

EXEMPLOS DE COMANDOS NO SQL SERVER

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

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

Disciplina de Banco de Dados Introdução

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

AULA Entidade-Relacionamento

BANCO DE DADOS PROFESSOR MAURÍCIO - MAURICIO.MELLO@PUCPR.BR AULA 02. O Modelo Entidade-Relacionamento ( MER )

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Banco de Dados I. Introdução. Fabricio Breve

4.6. SQL - Structured Query Language

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Microsoft Access

Exercícios de Lógica Exercícios de Fixação 08

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

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

Transcrição:

ULTI RESUMOS AMBIENTES COMPUTACIONAIS ULTIRESUMOS.COM.BR Sistema Operacional

Sistema Computacional = hardware + software Tipos de Software: Programas do sistema: gerenciam a operação do computador Programas de aplicação: programas de usuário Sistema Operacional: principal programa do sistema, que controla todos os recursos do computador (dispositivos físicos e funções de software). DEFINIÇÃO É um programa de controle do computador. O Sistema Operacional é responsável por alocar recursos de hardware e escalonar tarefas. Ele também deve prover uma interface para o usuário - ele fornece ao usuário uma maneira de acesso aos recursos do computador. Sobell. Um Sistema Operacional pode ser definido como um gerenciador dos recursos que compõem o computador (processador, memória, I/O, arquivos, etc). Os problemas centrais que o Sistema Operacional deve resolver são o compartilhamento ordenado, a proteção dos recursos a serem usados pelas aplicações do usuário e o interfaceamento entre este e a máquina. Stemmer. PRINCIPAIS ATRIBUTOS Abstração de Hardware Máquina Virtual apresenta ao usuário uma máquina mais simples S.O. é a porção de software que roda em modo kernel ou modo supervisor protege o hardware da ação direta do usuário Estabelecer critérios de uso dos recursos e ordem de acesso aos mesmos, impedindo violação de espaço de memória de processos concorrentes e tentativas de acesso simultâneo a um mesmo recurso gerência e proteção dos dispositivos. Ferramentas IDE (ambiente integrado de desenvolvimento) Delphi

O Delphi nada mais é que um simples IDE, IDE você já deve saber é um ambiente integrado para desenvolvimento composto por compilador, editor de texto, ferramenta de depuração e algumas frescurinhas a mais. O Delphi é RAD, isto é, a medida em que os componentes vão sendo selecionados, o Delphi escreve o código fonte para você. Os componentes em geral, incluem classes e propriedades muito utilizadas e que se relacionam com outros objetos. Tudo que nele existe foi pensando em velocidade de desenvolvimento. Possui um compilador extremamente rápido Possui um ambiente intuitivo e amigável de desenvolvimento Gera executável isolado (não há necessidade de distribuição de runtime) Possibilita entender sua biblioteca através de criação de novos componentes Possibilita a criação de DLLs (Dinamic Link Library) Possui um depurador de progama integrado (Integrated Debugger) Possibilita a criação de aplicações multi-threads Microsoft Visual Studio Express O Microsoft Visual Studio Express é um conjunto de ambientes de desenvolvimento integrados que incluem diversas linguagens de programação: Visual Basic Visual Web Developer Visual C# Visual C++ SQL Server Express DBdesigner

Tela Principal do DBDesigner Na área de trabalho são inseridas as tabelas e seus respectivos relacionamentos. a paleta de Ferramentas contém os componentes mais utilizados na criação e manutenção das tabelas. A navegação permite o controle da visualização da área de trabalho possibilitando navegar no diagrama. Os tipos de dados mostram os tipos possíveis de dados e o db model apresenta as tabelas com seus campos e os relacionamentos com outras tabelas. Fragmento de modelo de dados de uma Locadora Para demonstrar as funcionalidades da DBdesigner, é apresentada a construção de um fragmento do modelo de dados de uma locadora, representando suas tabelas com atributos e relacionamentos, não tendo o objetivo de ser um exemplo completo e complexo. O fragmento é composto pelas tabelas categoria, filme, estrela, ator, dvd, locação e cliente, com seus relacionamentos. Inserindo as tabelas A primeira etapa para construir o estudo de caso deste artigo é inserir as tabelas e seus atributos. O primeiro passo é criar a tabela curso. Deve-se

inserir na área de trabalho uma tabela (ícone new table localizado na tools palette). Para definir as propriedades como nome da tabela e seus atributos, dentre outras características de uma tabela, deve-se clicar duas vezes sobre o objeto criado. Feito isto, uma janela para a alteração de propriedades da tabela é aberta. O DBdesigner é uma ferramenta para a construção de modelos de dados, fácil de usar, com um aprendizado relativamente rápido, e que proporciona uma boa produtividade na sua utilização. Tudo isto com a vantagem de ser uma ferramenta gratuita e com o código fonte aberto. A possibilidade de sincronismo entre o modelo e o banco é de grande importância para o sucesso desta ferramenta. Isso faz com que manutenções futuras no banco sejam feitas de maneira rápida e eficiente. E o fato de salvar e recuperar arquivos no padrão xml é importante para a possibilidade de comunicação entre diferentes ferramentas. MySQL

O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. Entre os usuários do banco de dados MySQL estão: NASA, Friendster, Banco Bradesco, Dataprev, HP, Nokia, Sony,Lufthansa, U.S. Army, U.S. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems, Google e outros Características Portabilidade (suporta praticamente qualquer plataforma atual) Compatibilidade (existem drivers ODBC,JBDC e.net e módulos de interface para diversas linguagens de programação, como Delfhi, Java, C/C++, C#, Visual Basic Studio, Python, Perl,PHP, ASP e Ruby) Excelente desempenho e estabilidade Pouco exigente quanto a recursos de hardware Facilidade de uso É um Software livre com base na GPL Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid Suporta controle transacional; Suporta Triggers; Suporta Cursors (Non-Scrollable e Non-Updatable);

Suporta Stored Procedures e Functions; Replicação facilmente configurável; Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc. Wamp Wamp é um completíssimo pacote de software que serve para instalar e configurar facilmente no seu sistema o famoso servidor Apache, juntamente com a linguagem de programação PHP e o servidor de base de dados MySQL. Tudo o que você precisa para montar uma base de dados web em uma única aplicação. BANCO DE DADOS É uma coleção de dados inter-relacionados, representando informações sobre um domínio específico Exemplos: Lista Telefônica Fichas do acervo de uma biblioteca

Sistema de Banco de Dados Consiste em uma coleção de dados inter-relacionados e uma coleção de programas para prover o acesso a esses dados. O objetivo principal de um sistema de banco de dados é possibilitar um ambiente que seja adequado e eficiente para uso na recuperação armazenamento de informações. Sistemas de Gerenciamento de Banco de Dados (SGBD) Consistem em uma coleção de dados inter-relacionados e de um conjunto de programas para acessá-los Objetivo dos SGBD Prover um ambiente que seja conveniente e eficiente para recuperar e armazenar informações de Bancos de Dados Eliminar ou Reduzir Redundância e inconsistência de dados Dificuldade no acesso aos dados Isolamento dos dados Eliminar ou reduzir (Cont.) Anomalias de acesso concorrente Problemas de segurança Abstração de dados Simplifica a interação do usuário com o sistema Vantagens da utilização de Banco de Dados Rapidez na manipulação e no aceso a informação Redução do esforço humano (desenvolvimento e utilização) Disponibilização da informação no tempo necessário Controle integrado de informação distribuído fisicamente

Redução de redundância e de inconsistência de informações Compartilhamento de dados Desvantagens da utilização de Banco de Dados Complexos, difíceis e demorados de projetar Custos iniciais de software e hardware altos Danos no banco de dados afetam virtualmente todos os programas Necessidade de segurança Custos altos para conversão de sistemas baseados em arquivos para banco de dados Treinamento inicial necessário aos programadores e usuários. Abstração de Dados A característica que permite a independência entre programa e dados e independência entre programa e operação. Um SGBD fornece aos usuários uma representação conceitual de dados que não inclui muitos detalhes relativo ao modo como os

dados estão armazenados ou como operações são implementadas. Modelagem de dados Principal objetivo: o desenvolvimento de um modelo que contenha entidades e relacionamentos, e com isso seja possível representar as especificações das informações do negócio. Ajuda a organizar a forma de pensamento sobre os dados, demonstrando o significado e a aplicação prática deles Deve fornecer ao desenvolvedor: Representar o ambiente Documentar e normalizar Fornecer processos de validação Observar processos de relacionamentos entre objeto Tipos de modelagem de dados Modelo conceitual: é a forma mais natural dos fatos e está mais próxima da realidade do ambiente do cliente.o cliente deverá ser envolvido a fim de obter o levantamento de dados que darão o suporte à construção do modelo. Construção do diagrama de dados chamado Diagrama de Entidade e relacionamento, no qual deverão ser identificados todas as entidades e relacionamentos entre elas.

Modelo Lógico: Leva em conta algumas limitações e implementa recursos como adequação de padrão e nomenclatura. Define as chaves primárias e estrangeiras. Deve ser criado à partir do modelo conceitual. Modelo físico: Fazemos a modelagem física do modelo de bando de dados, levam-se em conta as limitações do SGBD. Descreve como os dados serão armazenados, estruturas complexas de baixo nível. Entidade O conceito fundamental da abordagem ER é o conceito de entidade entidade = conjunto de objetos 1 da realidade modelada sobre os quais deseja-se manter informações no banco de dados Uma entidade representa, no modelo conceitual, um conjunto de objetos da realidade modelada. Como o objetivo de um modelo ER é modelar de forma abstrata um BD, interessam-nos somente os objetos sobre os quais deseja-se manter informações. Vejamos alguns exemplos. No sistema de informações industrial que usamos no Capítulo 1, alguns exemplos de entidades poderiam ser os produtos, os tipos de produtos, as vendas ou as compras. Já em um sistema de contas correntes, algumas entidades podem ser os clientes, as contas correntes, os cheques e as agências. Observe que uma entidade pode representar tanto objetos concretos da realidade (uma pessoa, um automóvel), quanto objetos abstratos s (um departamento, um endereço²). Em um DER, uma entidade é representada através de um retângulo que contém o nome da entidade. Pessoa Departamento Como dito acima, cada retângulo representa um conjunto de objetos sobre os quais deseja-se guardar informações. Assim, no exemplo, o primeiro retângulo

designa o conjunto de todas as pessoas sobre as quais se deseja manter informações no banco de dados, enquanto o segundo retângulo designa o conjunto de todos departamentos sobre os quais se deseja manter informações. Caso seja necessário referir um objeto particular (uma determinada pessoa ou um determinado departamento) fala-se em ocorrência de entidade (alguns autores usam também o anglicismo instância de entidade). Atributos Toda entidade possui atributos, ou seja, características que informam sobre a entidade. A entidade Inquilino contém informações sobre Nome, Endereço, Cidade, Data de Nascimento de cada Inquilino, identificado entre os outros por uma chave primária, no caso pode ser um atributo Código. Tipos de atributos Atributo Simples Atributo Concatenado Chave Primária Chave Estrangeira Um único atributo representa uma característica Mais de um atributo representam uma característica Um atributo que é sempre único dentro de uma Entidade Atributo que se identifica com a chave primária em outra

Entidade Exemplo: Rg do Inquilino Exemplo: Endereço (Logradouro, Número,Cidade, Cep, UF) Exemplo: CPF atributo que não se repete entre os Inquilinos Exemplo: Codigo do Inquilino na Entidade Aluguel. Relacionamento Relacionamento é a interação entre os objetos que indicam a dinâmica dos negócios. Os Relacionamentos são identificados por verbos porque representam as ações que uma entidade exerce sobre outra. Como exemplo, O Inquilino aluga imóvel. MER Sistema de Imobiliária Diagrama Entidade-Relacionamento (DER) O Diagrama Entidade-Relacionamento descreve toda estrutura lógica do banco de dados. É possível construí-lo a partir de um MER, identificando assim a partir de um conceito do mundo real como os dados serão armazenados de fato. O DER tem como ênfase os dados e os relacionamentos. Sua representação utiliza os símbolos: Retângulos representam as entidades; Elipses representam os atributos; Losangos representam os relacionamentos entre as entidades; Linhas unem os atributos aos conjuntos de entidades e os conjuntos de entidades aos conjuntos de relacionamentos; Elipses duplas atributos multivalorados.

Na construção de um projeto de banco de dados é necessário saber quais são os objetos e os relacionamentos para elaborar o DER, ou seja, descobrir quais os atributos que compõem as tabelas (objetos). Atributo Composto Exemplo: Endereço. Seu conteúdo poderá ser dividido em vários outros atributos, como: Rua, Número, Complemento, Bairro, Cep e Cidade. Este tipo de atributo é chamado de atributo composto. Veremos mais de sua aplicação no post sobre normalização de dados. Funcionário (RG, Nome, Sexo, CIDADE, UF) RG UF SEXO Funcionário CIDADE Local NOME

Atributos Multivalorados Criamos uma nova relação R que inclui o atributo multivalorado A mais a chave primária K da relação que representa a entidade (ou relacionamento) que tem A como atributo A chave primária de R é a combinação de A e K Se o atributo multivalorado é composto => incluir seus componentes atômicos Nome RG Sexo Funcionários Fone Funcionário (RG, Sexo, Nome) Telefones_func (RG, Fone) Atributos Derivados

Resumo Representações de Atributos

Atributos de Conjunto de Relacionamentos Exemplos de diagramas ER exceto atributo

MER entidade fracas

Cardinalidade A cardinalidade é um conceito importante para ajudar a definir o relacionamento, ela define o número de ocorrências em um relacionamento. Para determinar a cardinalidade, deve-se fazer a pergunta relativa ao relacionamento em ambas as direções. Um departamento possui quantos empregados? - no mínimo 1 e no máximo N. Um empregado está alocado em quantos departamentos? - no mínimo em 1 e no máximo em 1 Somando-se as cardinalidades, definimos o resultado final do relacionamento, ou seja, 1:N Tipos de relacionamento

Existem três tipos de relacionamento entre entidades: um-para-um um-para-muitos muitos-para-muitos Relacionamento um-para-um O relacionamento um-para-um é usado quando uma entidade A se relaciona com uma entidade B e vice-versa. Este relacionamento é representado pelo sinal: 1:1 Relacionamento um-para-muitos O relacionamento um-para-muitos é usado quando uma entidade A pode se relacionar com uma ou mais entidades B. Este relacionamento é representado pelo sinal: 1:N Relacionamento muitos-para-muitos O relacionamento muitos-para-muitos é usado quando várias entidades A se relacionam com várias entidades B. Este relacionamento é representado pelo sinal: N:N ou N:M

Definições e Tipos de dados Numéricos: Existem tipos de dados numéricos, que se podem dividir em dois grandes grupos, os que estão em vírgula flutuante (com decimais) e os que não. TinyInt: é um número inteiro com ou sem signo. Com signo a margem de valores válidos é desde -128 até 127. Sem signo, a margem de valores é de 0 até 255. Bit ou Bool: um número inteiro que pode ser 0 ou 1. SmallInt: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde -32768 até 32767. Sem signo, a margem de valores é de 0 até 65535. MediumInt: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde -8.388.608 até 8.388.607. Sem signo, a margem de valores é de 0 até 16777215. BigInt: número inteiro com ou sem signo. Com signo a margem de valores válidos é desde -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Sem signo, a margem de valores é de 0 até 18.446.744.073.709.551.615. Float: número pequeno em vírgula flutuante de precisão simples. Os valores válidos vão desde -3.402823466E+38 até -1.175494351E-38,0 eté desde 175494351E-38 até 3.402823466E+38. xreal, Double: número em vírgula flutuante de dupla precisão. Os valores permitidos vão desde -1.7976931348623157E+308 até -2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308 até 1.7976931348623157E+308.

Decimal, Dec, Numeric: Número em vírgula flutuante desempacotado. O número armazena-se como uma cadeia. Tipo Data: Na hora de armazenar datas, há que ter em conta que MySQL não verifica de uma maneira estricta se uma data é válida ou não. Simplesmente comprova que o mês está compreendido entre 0 e 12 e que o dia está compreendido entre 0 e 31. Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de Janeiro de 1001 ao 31 de dezembro de 9999. O formato de armazenamento é de ano-mes-dia. DateTime: Combinação de data e hora. A margem de valores vai desde o 1 ed Janeiro de 1001 às 0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de 9999 às 23 horas, 59 minutos e 59 segundos. O formato de armazenamento é de ano-mes-dia horas:minutos:segundos TimeStamp: Combinação de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano 2037. O formato de armazenamento depende do tamanho do campo:

Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos. O formato de armazenamento é 'HH:MM:SS'. Year: armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano 2155. O campo pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois ou quatro algarismos. Tipos de cadeia: Char(n): armazena uma cadeia de longitude fixa. A cadeia poderá conter desde 0 até 255 caracteres. VarChar(n): armazena uma cadeia de longitude variável. A cadeia poderá conter desde 0 até 255 caracteres. Dentro dos tipos de cadeia pode-se distinguir dois subtipos, os tipo Test e os tipo Blob (Binary Large Object) A diferença entre um tipo e outro é o tratamento que recebem na hora de ordenálos e compará-los. No tipo test ordena-se sem ter importância as maiúsculas e as minúsculas e no tipo blob ordena-se tendo em conta as maiúsculas e minúsculas.

Diferença de armazenamento entre os tipos Char e VarChar Descrição de tabelas E descrita em um quadro toda a estrutura da tabela a ser criada, especificando todos os seus campos, o tipo de cada campo e o tamanho adotado para cada campo, e uma observação descrevendo o campo da tabela. A Linguagem de Definição de Dados (SQL-DDL) A Linguagem de Definição de Dados da SQL (SQL-DDL) é um conjunto específico de instruções SQL que fornece meios para a definição e modificação de esquemas de relação, remoção de relações e criação de índices. Criando tabelas Uma tabela (ou relação) SQL é definida usando o comando create table: create table r (A1 D1, A2 D2,...,An Dn) onde r é o nome da relação, Ai é o nome de um atributo no esquema da relação r e Di é o tipo do atributo Ai. create table cliente ( nome char(30), sexo char(1), CPF number(11), endereco char(30), cidade char(30) ); Uma relação é criada inicialmente vazia. O comando insert pode ser usado para carregar os dados para a relação. Removendo uma Tabela

Para remover uma relação de um banco de dados SQL, usa-se o comando drop table. O comando drop table remove todas as informações sobre a relação. O comando drop table r onde r é o nome de uma relação (tabela) existente. Alterando uma Tabela O comando alter table é usado para adicionar, excluir ou alterar atributos em uma relação existente. Para inserir um novo atributo em uma tabela é usada a cláusula add. Todas as tuplas na relação são assinaladas como null para o valor do novo atributo. alter table r add ( A1 D1, A2 D2,... ) onde r é o nome de uma relação existente e A1 D1, A2 D2,... é uma lista contendo nome do atributo (A) a ser adicionado e o tipo do atributo (D), respectivamente. Para excluir colunas de uma tabela utiliza-se a cláusula drop. drop A1, A2,... onde r é o nome de uma relação existente e A1, A2,... é uma lista dos atributos a serem removidos. Para alterar o nome de um atributo de uma tabela utiliza-se a cláusula rename. alter table r rename A N/A onde r é o nome de uma relação existente, A é o nome do atributo a ter o seu nome alterado para NA. Para alterar o tipo de um atributo utiliza-se a cláusula modify. alter table r modify A1 D1, A2 D2,... onde r é o nome de uma relação existente, A1 D1, A2 D2,... é uma lista contendo o nome do atributo (An) a terá o seu tipo alterado para (Dn). Restrições de Integridade

Evitando valores nulos É muito comum definirmos atributos que não podem conter valores nulos. Isto é, o seu preenchimento é obrigatório para que se mantenha a integridade dos dados no sistema. Para evitar que em algum momento uma coluna de uma tabela possa conter valor nulo (ou não conter valor algum) deve-se utilizar a cláusula NOT NULL após a definição da coluna. Exemplo: create table cliente ( nome char(30) NOT NULL, sexo char(1), CPF number(11), endereco char(40), cidade char(20) ) No exemplo acima, a atribuição de um valor à coluna nome é obrigatório. Caso o usuário se esqueça de preenche-lo, o SGBD apresentará uma mensagem de erro. Mostrar campos de uma tabela Para mostrar os campos de uma tabela, basta usar o comando DESC <TABELA>. Chave Primária A função da chave primária é identificar univocamente uma linha da tabela. Cada tabela deve possuir uma chave primária. Quando se define um atributo como chave primaria, fica impl ícito as cláusulas UNIQUE e NOT NULL para este atributo, não sendo necessária a especificação destas. create table cliente ( codigo number(5) primary key, nome char(30) not null, sexo char(1), CPF number(11) UNIQUE, endereco char(40), cidade char(20) DEFAULT Maceio ) Opcionalmente pode-se definir a chave primária após a especificação de todos os atributos da tabela. Linguagem de Manipulação de Dados

A principal estrutura da SQL DML consiste em três cláusulas: select, from e where. select A1, A2, A3,..., An from r1, r2,..., rm where P onde Ai representa um atributo r1 é uma tabela P é um predicado (condição/critério de seleção). select Fcodigo, status from Fornecedor where cidade = Paris A condição (ou predicado) que segue where pode incluir operadores de comparação =, <> (diferente), >, >=, < e <=; os operadores booleanos AND, OR e NOT. Select Fcodigo, nome from Fornecedor where cidade = Paris and status > 20 Fcodigo nome 3 Blake A lista A1, A2,..., An de atributos pode ser substituída por um asterisco (*) para selecionar todos os atributos de todas as relações presentes na cláusula from. select * from Fornecedor O resultado da consulta acima será uma cópia da relação Fornecedor. O resultado de uma consulta SQL é uma relação. select status from Fornecedor Linguagens de consultas formais são baseadas em noções matemáticas de relação. Assim, nunca deveriam aparecem tuplas duplicadas nas relações. Na prática, a eliminação de duplicação é uma relativa perda de tempo. Todavia, a SQL permite duplicações em relações. Nos casos em que queremos forçar a eliminação de duplicações, inserimos a palavra distinct depois de select. select distinct status from Fornecedor comandos Outer Joins com mais de duas tabelas O funcionamento é o mesmo. O cruzamento será feito na seqüência em que você lista as tabelas na sua consulta.

Consulta: SELECT p.nome, e.nome, l.nome FROM programadores p INNER JOIN empresas e ON p.id_empresa = e.id_empresa INNER JOIN programadores_linguagens pl ON pl.id_programador = p.id_programador INNER JOIN linguagens l ON l.id_linguagens = pl.id_linguagens Como eu quero os programadores e o nome da empresa em que trabalha fiz uma junção entre as duas tabelas: > programadores p INNER JOIN empresas e ON p.id_empresa = e.id_empresa Em seguida, fiz uma junção para saber quais a linguagens que o programador está vinculado: > INNER JOIN programadores_linguagens pl ON pl.id_programador = p.id_programador Finalmente, como preciso do nome das linguagens de programação, vinculei também a tabela linguagens: > INNER JOIN linguagens l ON l.id_linguagens = pl.id_linguagens Resultado:

Repare que os programadores Gabriel e Pinter não aparecem no resultado, isso acontece por que, ao fazer a junção com a tabela programadores_linguagens eu utilizei a junção INNER JOIN, neste caso, faço com que o programador obrigatoriamente esteja relacionado à pelo menos uma linguagem de programação. Como resolver? Simples basta trocar o INNER JOIN por LEFT JOIN, ou seja, estou dizendo que quero todos os programadores independente se eles estão ou não relacionados a uma linguagem de programação Mas o que irá aparecer no campo nome da programação no resultado da consulta? O retorno será NULL. Veja: SELECT p.nome, e.nome, l.nome FROM programadores p INNER JOIN empresas e ON p.id_empresa = e.id_empresa LEFT JOIN programadores_linguagens pl ON pl.id_programador = p.id_programador LEFT JOIN linguagens l ON l.id_linguagens = pl.id_linguagens Resultado:

Em ambos os resultados, eu (Paulinha) fui listada duas vezes, isso ocorre por que eu estou vinculada a duas linguagens de programação. É possível eliminar essa repetição usando os comandos GROUP BY e GROUP_CONCAT. SELECT p.nome, e.nome,group_concat(l.nome) FROM programadores p INNER JOIN empresas e ON p.id_empresa = e.id_empresa LEFT JOIN programadores_linguagens pl ON pl.id_programador = p.id_programador LEFT JOIN linguagens l ON l.id_linguagens = pl.id_linguagens GROUP BY p.id_programador HAVING Consulta para listar todos os e-mails duplicados em uma tabela, mas serve para qualquer coluna. SELECT email FROM tabela GROUP BY email HAVING count(email) > 1 ORDER BY email DISTINCT Palavra chave que elimina valores duplicados na saída.

Ex.: SELECT DISTINCT estado_cli FROM clientes; Estado_cli MG RJ SP LIMIT O comando LIMIT é quase que obrigatório para sistemas que possuem grandes bases de informações. Pois você precisa limitar a quantidade de resultados ao fazer uma consulta no banco. SELECT * FROM nome_da_tabela LIMIT 50 COUNT Estabelece um limite de registros a serem mostrados no resultado de sua consulta. Ex.: SELECT COUNT(*) FROM Clientes; COUNT(*) 10

Sum Este comando calcula a somatória de todos os valores de uma coluna Ex: select sum(cli_salario) as valor_total from clientes; select sum(cli_salario) as valor_total from clientes where cli_sexo = 'F'; min Esta função sql retorna o valor mínimo encontrado em uma coluna Ex: select min(cli_salario) as valor_minimo from clientes; select min(cli_salario) as salario_minimo from clientes where cli_codigo in(1,3) max Esta função sql retorna o valor máximo encontrado em uma coluna Ex: select max(cli_salario) as valor_minimo from clientes; select max(cli_salario) as salario_minimo from clientes where cli_codigo in(1,3) avg Este comando calcula o valor médio de uma determinada coluna Ex: select avg(cli_salario) as media_salarial from clientes; ABS(X) Retorna o valor absoluto de determinado valor ou coluna de valores. Ex: select nome _cli, ABS(valor_cli) FROM clientes WHERE valor_cli < 0; ROUND(X,D) Arredonda um valor para o inteiro mais próximo, Pode ser passado como argumento o numero de casas decimal. Ex:

select nome_cli, ROUND(valor_ped,2) FROM clients JOIN pedidos ON cod_cli = cod_cli_ped WHERE valor_ped > 100; TRUNCATE(X,D) Retorna o número X, truncado para D casas decimais. Se D é 0, o resultado não terá ponto decimal ou parte fracionária: Ex: select nome_cli, truncate(valor_ped,1) from clientes join pedidos on cod_cli = cod_cli_ped where valor_ped > 100 order by nome_cli;