• 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 consultas sobre internações hospitalares; Dados a serem armazenados: Pacientes – nome, data de nascimento, gênero, logradouro, bairro, município, Unidade da Federação (UF) e CEP; Internações: data da internação, data da alta, diagnóstico principal, diagnóstico secundário e desfecho; Hospitais: código (CNES), razão social, CNPJ, logradouro, bairro, município, Unidade da Federação (UF) e CEP; • Consultas • Pacientes, segundo: gênero, idade e município; • Internações, segundo: diagnóstico principal e hospital; • Tempo de permanência, segundo: diagnóstico de internação e hospital; • Desfecho, segundo: diagnóstico de internação, hospital; Introdução a bancos de dados e SQL - sistemas de gerenciamento de bancos de dados; - modelo entidade/relacionamento (ER) - chaves: primária e secundária; - SQL - sintaxe; - palavras-chave; - operadores Apresentação postgresql - download e instalação - ferramenta de adminstração - pgAdmin • SQL – Definição de dados - criação de tabelas - alterações na estrutura de uma tabela - exclusão de tabelas • SQL – Manipulação de dados - inserção de registros - alterações em dados registrados - exclusão de registros • SQL – Consulta aos dados - seleção de linhas em uma tabela; - junções - visões • SQL – Funções - cadeias de caracteres - numéricas - manipulação de datas • Rotinas de segurança - cópia de segurança - restauração de base de dados • Migração de dados - importação de dados a partir de outros formatos de arquivos - exportação de dados para outros formatos de arquivos • Processadores de textos; • Planilhas eletrônicas; • DBF dBase; Vantagens Facilidade criação e manutenção dados; Simplicidade uso dos comandos (dBase); Desvantagens Monousuário; Perda de dados – corrupção dos arquivos; Ausência de mecanismos de consistência dos dados; Ausência de mecanismos para segurança dos dados; • Banco de dados = conjunto integrado de registros formatados segundo regras específicas e fixas (Sanches et. al, 2002; Taylor, 2003); • Registro = representação de algum objeto físico ou conceitual (Taylor, 2003); • SGBD = conjunto de programas para definir e manter dados, possibilitando acesso, modificação e extração de dados (Taylor, 2003; Kriegel & Trukhnov, 2008); • Bancos de dados disponíveis: Oracle – MySQL – SQL Server Postgresql – DB2 – Access – Firebird Tabela = Tabelas são estruturas bi-dimensionais identificadas por um nome e formadas por linhas e colunas para o armazenamento de registros relativos a objetos do mesmo tipo; * no modelo em construção, os dados dos pacientes e dos hospitais devem ser armazenados em tabelas diferentes; • Colunas = representam os atributos de um objeto e, como as tabelas, são identificadas por um nome; • Tipos de colunas: Cadeia de caracteres char; varchar; Número integer/int; decimal/numeric; Datas date; timestamp; Objetos/entidades diferentes na mesma tabela; Redundância; Inconsistência de dados; Criação do banco de dados – Eliminando eventuais problemas Criação do banco de dados – Acrescentando novas tabelas * Outras tabelas poderiam ser acrescentadas. Por exemplo, para endereços dos pacientes Relacionamento 1 para 1 (1:1) - uma linha da tabela A relaciona-se com apenas uma linha da tabela B; Relacionamento 1 para muitos (1:N) – uma linha da tabela A relaciona-se com várias linhas da tabela B; Relacionamento muitos para muitos (M:N) – várias linhas da tabela A relacionam-se com várias linhas da tabela B; • Chave-primária (primary key) – identifica univocamente um objeto em uma tabela; • Pode ser gerada por meio de: uma coluna – simples; mais de uma coluna – composta; . A coluna para chave primária pode ser: um identificador natural do objeto - exemplo: cnes, para hospitais; um identificador alternativo (surrogate key), cujo valor é gerado automaticamente; Chave estrangeira (foreign key – fk) - Coluna de uma tabela que aponta para a chave primária de outra tabela; unique – indica que a coluna receberá um determinado valor apenas uma vez; check especifica uma que condição que a coluna precisa atender para salvar um registro; exemplo: genero= 'M' ou 'F'; not null – torna obrigatório o preenchimento da coluna; * Uma chave primária possui as restrições: unique e not null; Criação do banco de dados – Modelo final – Relacionamentos e uso de chave alternativa como pk SQL (Structure Query Language) - linguagem para a definição e manutenção das estruturas das tabelas, bem como, a entrada, atualização e extração de dados; Baseada em declarações para definição e manipulação dos dados; Declaração = sequência de comandos; Comando = uma sequência de termos; Termo = palavra chave, um identificador, um identificador entre aspas, um literal (ou constante), ou um caractere especial; Exemplo: SELECT * FROM minha_tabela; Os termos SELECT e FROM são palavras-chave; O termo minha_tabela é um identificador relativo ao nome da tabela; Palavra chave - palavras que possuem um significado definido na linguagem SQL; Exemplos: SELECT, FROM, UPDATE; - Identificadores – identificam nomes de tabelas, colunas e outros objetos Exemplos: pacientes, hospitais - • Palavras chave e identificadores: iniciar com: uma letra (a-z e ou letra não latinas), ou o caractere sublinhado (_); seguida de: letras, sublinhados, dígitos (0-9) A linguagem SQL não diferencia letras maiúsculas e minúsculas nas palavras chave e nos identificadores, a não ser que os identificadores sejam delimitados por aspas (") Exemplo: SELECT nome FROM pacientes; select NOME from PACIENTES; - Palavras chave e identificadores: iniciar com: uma letra (a-z e ou letra não latinas), ou o caractere sublinhado (_); seguida de: sublinhados, dígitos (0-9) * Recomendação comunidade postgresql: - Evitar colocar aspas no identificador ao criar tabelas ; - Utilizar somente caracteres minúsculos em identificadores; Constantes - seqüência arbitrária de caracteres envolta por apóstrofos (') Exemplo: ‘Maria’; - Constantes – numéricas Exemplos: 10 10.5 Operadores: Lógicos : AND, OR e NOT; Comparação: = ,< , <=, >, >=, <> ou != (diferente) Matemáticos: +, -, *, /, % (módulo – resto), ^ (exponenciação), |/ (raiz quadrada), @ (absoluto); Características: - Livre; - Open Source; - Multiplataforma; - Tamanho Máximo do Banco de Dados – Ilimitado; - Tamanho máximo de uma Tabela - 32 Tb (terabyte); - Tamanho Máximo de uma Linha - 1.6 Tb (terabyte); - Tamanho Máximo de um Campo - 1 Gb (gigabyte); - Máximo de Linhas por Tabela – Ilimitado; - Máximo de Colunas por Tabela - 250–1600;