BANCO DE DADOS WEB AULA 6. Tipos de Dados. professor Luciano Roberto Rocha.

Documentos relacionados
Bando de Dados Web. Tipos de dados

PROGRAMAÇÃO ORIENTADA A OBJETOS II -CRIANDO UM BD POSTGRESQL. Prof. Angelo Augusto Frozza, M.Sc.

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

Conceito de Campos e Tabelas

PROGRAMAÇÃO ORIENTADA A OBJETOS II -CRIANDO UM BD POSTGRESQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Comandos SQL. Exercícios com o MySQL ou MaridaDB. Prof. Emiliano S. Monteiro

Modelagem Física e SQL

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

Banco de Dados. Linguagem SQL

André Milani. Novatec

Tipos de Dados. Banco de Dados I Prof. Erinaldo Nascimento

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

BANCO DE DADOS TIPOS DE VARÁVEIS SQL. Professor Carlos Muniz

Modelagem Física e SQL

Definição de Dados com SQL

Banco de Dados? Banco de Dados Professor Vanderlei Frazão

Instituto Educacional de Castro Tecnologia em Sistemas para Internet

Paradigmas de Linguagens

Introdução a SQL (parte 2)

Page 1. Prof. Constantino Jacob

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

MySQL + PHP 06/05/2015. IFSC/campus Florianópolis Programação para a WEB Prof. Herval Daminelli

Natanael Gonçalves Afonso 8º Período Engenharia da Computação Skydrive:

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

BANCO DE DADOS GERENCIAL 1 A U L A 2

Programação de Computadores III

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

INTRODUÇÃO AO MYSQL. Eng. Computação

Banco de Dados I Introdução SQL

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

Algoritmos II prof. Daniel Oliveira

Linguagem Computacional

Tarefa Orientada 8 Criação de tabelas

Bem vindo à semana 14! Tema central: Banco de Dados

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

A linguagem SQL

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Introdução. 17-out-08 Leandro Tonietto 2

JSP Prof. Daniela Pires. VARIAVEIS... 2 Tipos de Dados... 2 String Float Integer Boolean... 3

Fábio Borges de Oliveira. MySQL

P R O J E T A N D O U M B A N C O D E D A D O S L O G I C A M E N T E P R O F. : A N D R É L U I Z M O N T E V E C C H I

A linguagem SQL

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Aula 3: Tipos e variáveis

MANUTENÇÃO DE COMPUTADORES SISTEMAS NUMÉRICOS

3. Linguagem de Programação C

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

MCG126 Programação de Computadores II

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Linguagem de Maquina II. Visão Geral

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Algoritmos e Lógica de Programação Introdução e formas de representação

Estrutura de Dados Conceitos Iniciais

SQL Linguagem de Definição de Dados

Introdução à Computação MAC0110

ECT1203 Linguagem de Programação

Banco de dados. Prof. Me. Hélio Esperidião

Banco de Dados. Banco de Dados

BCD29008 Banco de dados

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

INTRODUÇÃO À LINGUAGEM C

Lição 4 Fundamentos da programação

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Modelagem de banco de dados com MySQL Workbench

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Gestão de Base de dados Tabelas e Chaves

REDES DE COMPUTADORES II

Projeto Físico de Banco de Dados

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Algoritmos e Estruturas de Dados I

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Introdução ao Fortran 90-1

Cap. 2 Expressões na linguagem C

Princípios de Desenvolvimento de Algoritmos MAC122

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte

Estrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013

SQL - Structured Query Language. Karine Reis Ferreira

Treinamento em SQL. Índice

CMP Algoritmos Algoritmos Parte I. Professor Vicente Paulo de Camargo

Variáveis Tipos de Dados. APROG (Civil) Aula 2

Classes de endereços IP - Os bits de endereços IP são reservados um para a classe de rede e os outros para computador (host).

Estruturas de Dados. Módulo 2 Expressões. 9/8/2005 (c) Marco A. Casanova - PUC-Rio 1

Fundamentos de TI. Aula07_Representação de dados pelo Computador.doc 1

Organização de programas em Pascal

Transcrição:

BANCO DE DADOS WEB AULA 6 Tipos de Dados professor Luciano Roberto Rocha www.lrocha.com

A escolha dos tipos de dados Tipo de dado é o conjunto de valores e operações (domínio) que um determinado atributo ou variável pode armazenar. No PostgreSQL existem diversos tipos de dados para o armazenamento e gerenciamento de informações. A escolha adequada do tipo de dado, de acordo com a informação a ser armazenada, gera uma otimização de recursos e aumento no desempenho do SGBD. 2

Tipos de dados no PostgreSQL Os tipos de dados suportados pelo PostgreSQL são divididos nas seguintes categorias: Numéricos Monetários (obsoleto) Strings (caracteres e textos) Datas e horas Binários/Booleanos Rede Geométicos 3

Numéricos: SMALLINT ou INT2 Armazena valores numéricos inteiros pequenos. Armazenamento: 2 bytes Intervalo: -32768 a +32767 Quantidade de produtos em estoque, idade, número de filhos etc. 300 300 50000 Erro: Valor fora do intervalo possível para este tipo de dado. 4

Numéricos: INTEGER / INT / INT4 Armazena valores numéricos inteiros de tamanho normal. Armazenamento: 4 bytes Intervalo: -2147483648 a +2147483647 Com o tipo de dado INTEGER é possível armazenar valores próximos de 2 bilhões (positivos ou negativos) 123456789 123456789 12345678900 Erro: Valor fora do intervalo possível para este tipo de dado. 5

Numéricos: BIGINT / INT8 Armazena valores inteiros de tamanho gigantesco. Armazenamento: 8 bytes Intervalo: Aproximadamente 18 casas decimais. É importante destacar que quanto maior o intervalo de valores que o tipo de dado utiliza, maior é o espaço em disco que o mesmo ocupa. 123456789 123456789 12345678900 12345678900 6

Numéricos: REAL /FLOAT/FLOAT4 Armazena valores numéricos com casa decimal (pontoflutuante) de precisão simples. Armazenamento: 4 bytes Intervalo: 6 casas decimais. Esse tipo de dado deve ser atualmente utilizado para armazenar valores monetários, geralmente com duas casas decimais. 10020 10020 10020.60 10020.6 7

Numéricos: NUMERIC(p,s) / DECIMAL(p,s) Armazena números exatos, com precisão definida pelo usuário. Armazenamento: 8 bytes + (2 * (s/4)) Intervalo: limitado a 1000 digitos. O parâmetro p indica o número total de dígitos que o campo poderá conter e s indica o número de dígitos após o ponto decimal. 12.3456 12.35 Supondo um NUMERIC(6,2) 1234.3456 1234.35 Supondo um NUMERIC(6,2) 12.34 12.3400 Supondo um NUMERIC(6,4) 8

Numéricos: SERIAL / SERIAL4 Não são tipos verdadeiros, mas sim uma notação para definir colunas identificadoras únicas (auto-incremento), criando implicitamente uma sequência (sequence). Armazenamento: 4 bytes Intervalo: 1 a 2147483647 (próximo de 2 bilhões) Deve-se tomar cuidado ao querer informar o valor deste campo manualmente para um registro, pois pode ser que o PostgreSQL alcance posteriormente o valor informado. 1 1 5000 5000 9

Numéricos: BIGSERIAL / SERIAL8 Possui as mesmas características do SERIAL, com a vantagem de possuir um limite numérico extremamente maior. Armazenamento: 8 bytes Intervalo: 1 a 9,2E+19 (9223372036854775807) Este tipo de dado utiliza o dobro de espaço de armazenamento em relação ao SERIAL, devendo ser utilizado somente se houver a expectativa de possuir mais de 2 bilhões de registros na tabela. 1 1 200000 200000 10

Monetários: MONEY Até algumas versões mais antigas do PostgreSQL era o formato utilizado para armazenar valores monetários no formato de moeda americana. Armazenamento: 4 bytes Intervalo: -21474836.48 a +21474836.47 Este tipo de dado tornou-se obsoleto, sendo atualmente utilizado o tipo de dado REAL, contudo por razões de compatibilidade o PostgreSQL ainda dá suporte ao tipo MONEY. $500 $500.00 $5,500.00 $5,500.00 11

Strings: CHARACTER(n) / CHAR(n) Uma string formada por um número fixo (n) de caracteres. Esse tipo preenche com espaços em branco a direita do conteúdo até totalizar o comprimento da string. Armazenamento: (4+n) bytes Capacidade: até 1Gb de informação strmenor strmenor Supondo um CHAR(10) StrMaiorQueoDeclarado Erro: Valor com mais posições... 12

Strings: CHARACTER VARYING(n) / VARCHAR(n) Uma string de tamanho variado. Similar ao tipo CHAR, apenas difere pelo fato de não completar a string com espaços caso o tamanho do texto não atinja o comprimento definido. Armazenamento: (4+n) bytes Capacidade: até 1Gb de informação strmenor strmenor Supondo um VARCHAR(10) StrMaiorQueoDeclarado Erro: Valor com mais posições... 13

Strings: TEXT Armazena diferentes tipos de textos, que não possuam tamanho similar entre os registros. Não requer a declaração de um número máximo de caracteres. Armazenamento: (4+n) bytes Capacidade: Até 1 Gb de informação Lorem ipsum dolor Lorem ipsum dolor sit amet avec quis sit amet avec quis 14

Datas e Horas: INTERVAL(p) Este tipo de dado representa um período de tempo. Sua utilização está ligada a operações com tempo, expirações de prazos e outros. Armazenamento: 12 bytes Capacidade: -178000000 anos a 178000000 anos O parâmetro p indica as casas decimais da unidade de segundo. A utilização do tipo INTERVAL deve ser sempre no formato quantidade seguido de uma das unidades apresentadas. 15

Datas e Horas: INTERVAL(p) As unidades de tempo podem ser: second minute hour day week month year decade century millennium ago (tempo negativo) É possível utilizar os temos em seus respectivos plurais em inglês, contudo não é obrigatório, mesmo quando a quantidade para a referida unidade de tempo é superior a 1. Exemplos: 10 year ou 10 years 2 decades 1 year 5 days 2 hours 17 minutes 3.23 seconds ago 16

Datas e Horas: DATE Armazena somente datas, que são aceitas em diversos formatos. Como padrão é usado o ISO (YYYY- MM-DD). Armazenamento: 4 bytes Intervalo: 4713 BC a 5874897 AD now 2009-08-23 23/08/2009 2009-08-23 11-Feb-09 2009-02-11 today 2009-08-23 17

Datas e Horas: TIME / TIME without time zone Armazena uma hora do dia sem a região de fuso horário. Armazenamento: 8 bytes Intervalo: 00:00:00 a 24:00:00 now 20:35:06 (Horário corrente do sistema) 09:10:00 09:10:00 16:00 16:00 04:00 PM 16:00:00 18

Datas e Horas: TIME(n) with time zone / TIMENZT(n) Armazena uma hora do dia junto com a informação de região de fuso horário do tempo em questão. Armazenamento: 12 bytes Intervalo: 00:00:00+1459 a 24:00:00-1459 now 20:35:06.957-03 09:10:00 09:10:00-03 16:00 16:00:00-03 04:00 PM 16:00:00-03 16:00+08 16:00:00+08 19

Datas e Horas: TIMESTAMP [without time zone] Armazena uma concatenação de data e hora nos mesmos formatos dos seus respectivos tipos (DATE TIME). Armazenamento: 8 bytes Intervalo: 4713 BC a 5874897 AD Opcionalmente podem ser informados após a data as siglas AD (Anno Domini) ou BC (Before Christ). now 2009-08-23 20:35:06 09:10 PM Erro: É necessário informar a data 2009-01-22 2009-01-22 00:00:00 20

Datas e Horas: TIMESTAMP(n) with time zone Armazena uma concatenação de data e hora junto com a informação da região de fuso horário. Armazenamento: 8 bytes Intervalo: 4713 BC a 5874897 AD Opcionalmente podem ser informados após a data as siglas AD (Anno Domini) ou BC (Before Christ). now 2009-08-23 20:35:06-03 09:10 PM Erro: É necessário informar a data 2009-01-22 2009-01-22 00:00:00-03 21

Binários e Booleanos: BYTEA Também conhecido como BLOB pelo padrão SQL. Permite o armazenamento de cadeias binárias. Armazenamento: (4 + n) bytes O tipo de dados BLOB (Binary Large Object) geralmente é utilizado para armazenar imagens ou outros arquivos (documentos, áudios, vídeos etc.) em outros SGBDs. Embora isso seja possível no PostgreSQL não é aconselhável por motivos de desempenho, pois como os dados são armazenados bit-a-bit a o seu armazenamento e recuperação pode se tornar extremamente lento. 22

Binários e Booleanos: BIT(n) Armazena strings binárias de tamanho fixo (n) formado por 0 s e 1 s. Deve-se respeitar o número de caracteres definidos ao inserir registros. Armazenamento: (n) bytes Supondo um BIT com 10 posições B 1010010110 1010010110 B 101001011 Erro: Utilizou menos posições B 101001011011010 Erro: Utilizou mais posições 23

Binários e Booleanos: BIT VARYING(n) / VARBIT(n) Assim como o formato BIT, este tipo de dado armazena strings binárias. A diferença é que este suporta string de diferentes tamanhos, desde que menores do que o declarado. Armazenamento: (n) bytes Supondo um VARBIT com 10 posições B 1010010110 1010010110 B 101001011 101001011 B 101001011011010 Erro: Utilizou mais posições 24

Binários e Booleanos: BOOLEAN / BOOL Possibilita armazenar as opções TRUE e FALSE. Geralmente utilizado como FLAG de propriedades de objetos. Armazenamento: 1 byte Intervalo: TRUE, true, YES, yes, T, t, Y, y, 1 FALSE, false, NO, no, F, f, N, n, 0 Supondo um VARBIT com 10 posições TRUE false F T t f f Erro de sintaxe: É necessário aspas... 25

Tipos de dados de Redes É possível armazenar informações de redes como IPs e endereços MAC utilizando os seguintes tipos de dados: CIDR: Armazena endereços de rede IPv4. Ex.: 10.1/25 (arredonda para zeros quando omitido o IP completo.) INET: Armazena um endereço de rede ou de host, com a diferença de não permitir a omissão de partes do número IP. Ex.: 10.1.100.128/25-2001:4f8:3:ba::/64 MACADDR: Armazena um endereço MAC de placas de rede. Ex.: 11:00:1e:02:12:01 26

Tipos de dados de Geométricos Com o rápido crescimento das aplicações gráficas, alguns novos tipos de dados surgiram: 27

Tipos de dados de Geométricos POINT: Representa um ponto. Ex.: (1,5) LSEG: Representa um Segmento de linha. Ex.: ((1,5), (3,2)) PATH: Coordenadas de um desenho formado por pontos. Ex.: ((1,5), (1,6),(2,8)) BOX: Uma caixa retangular representada por um par de pontos. Ex.: ((1,5), (3,2)) POLYGON: Representa um polígono de forma regular/ irregular. Ex.: (1,5), (1,6),(2,8),(3,3) CIRCLE: Representa um círculo, formado pelo seu ponto central e tamanho do seu raio. Ex.: ((1,5), 2) 28