Tecnologias e Linguagens para Banco de Dados I - WEB I – Atribuições e atividades profissionais relativas à qualificação ou à habilitação profissional, que justificam o desenvolvimento das competências previstas nesse componente curricular Conhecer a estrutura básica de um sistema gerenciador de banco de dados; Desenvolver/construir estruturas de tabelas em banco de dados relacional; Operar aplicativos para banco de dados, formulando consultas; Conhecer a linguagem estruturada de consulta ; II - Bases Tecnológicas 1. Estrutura de dados aplicada a banco de dados 2. Tipos de armazenamento e métodos de acesso aos dados 3. Ambientes/ferramentas de gerenciamento de bancos de dados 4. DER – Diagrama Entidade-Relacionamento 5. MER – Modelo Entidade-Relacionamento 6. MCD – Modelo Conceitual de Dados: normalização – aplicação das Formas Normais Prof. João Ricardo Andrêo 31/05/2017 08:13 1 Tecnologias e Linguagens para Banco de Dados I - WEB III – Habilidades Utilizar ambientes e linguagens para manipulação de dados nos diversos modelos de SGBD (Sistemas Gerenciadores de Bancos de Dados) Utilizar os conceitos de bancos de dados (SGBD) em bases de dados distribuídas. Aplicar a orientação a eventos em bancos de dados. Desenvolver ferramentas de análise voltadas para estrutura de dados. IV – Competências Interpretar e analisar o resultado da modelagem de dados estruturada. Implementar as estruturas modeladas usando banco de dados. Identificar e desenvolver ferramentas de análise voltadas para estruturas de dados. Prof. João Ricardo Andrêo 31/05/2017 08:13 2 Tecnologias e Linguagens para Banco de Dados I - WEB V – Material de Apoio Didático para Aluno ALVES, Willian Pereira. Fundamentos de Bancos de Dados. Rio de Janeiro: Campus. ANDREO, João Ricardo. Uma análise dos Sistemas Gerenciadores de Banco de Dados da região de Bauru. 2004. 109 páginas. Monografia (Esp. Em Sist. De Informação para INTERNET) – USC / Bauru, São Paulo. DATE, C. J. Introdução a Sistemas de Banco de Dados. Rio de Janeiro: Campus, 2004. 896 páginas. OLIVEIRA, Adenise Generini de. SQL SERVER 6.5. Santa Catarina: Bookstore Livraria Ltda., 1997. 254 páginas. SILBERSCHATZ, Abraham; KORTH, Henry F. Sistemas de Banco de Dados. Rio de Janeiro: Campus, 1999. 778 páginas. SOUKUP, Ron. Desvendando o Microsoft SQL 6.5. Rio de Janeiro: Campus, 1998, 883 páginas. MANZANO, José Augusto N. G. Microsoft SQL Server 2005 Express Edition – Interativo. São Paulo : Editora Érica, 2008. Prof. João Ricardo Andrêo 31/05/2017 08:13 3 Tecnologias e Linguagens para Banco de Dados I - WEB VI – Outras Informações / Observações Avaliação: 01/04/2010 – Recuperação: 15/04/2010 Conselho: 08/05/2010 Avaliação: 10/06/2010 – Recuperação: 24/06/2010 Conselho: 10/07/2010 Disquetes ou PenDrive, Material p/ anotações, etc (material de uso pessoal) Prof. João Ricardo Andrêo 31/05/2017 08:13 4 Tecnologias e Linguagens para Banco de Dados I - WEB Surgimento do Banco de Dados (Necessidades e Evolução) Necessidade de registrar dados importantes para utilização futura. Na pré-história usavam as pinturas, posteriormente as inscrições egípicias (hieróglifos), os papiros e nos séculos atuais, o papel – é a forma mais comum para registrar dados. O papel armazena muitas informações (livros), mas tem alguns inconvenientes quando utilizamos como exemplo, o registro de informações de uma empresa (controle de estoque, folha de pagamento, contas a pagar, receber etc). Uma das primeiras formas de armazenamento de informações na era computacional foi a fita de papel perfurado, sucedida posteriormente pelo cartão perfurado. (Sistemas idealizados por Hermam Hollerith – fundador de uma empresa que posteriormente teve o nome mudado para International Business Machine – IBM). Os fatores que levaram ao desenvolvimento dos bancos de dados foram: praticidade, rapidez, eficiência e confiabilidade. Podemos citar como exemplo de armazenamento de dados, que assemelha-se aos sistemas computacionais, os arquivos de aço, encontrado nas empresas, que armazenam fichas, pastas e outros documentos, organizados em gavetas. Prof. João Ricardo Andrêo 31/05/2017 08:13 5 Tecnologias e Linguagens para Banco de Dados I - WEB Surgimento do Banco de Dados (Necessidades e Evolução - continuação) A necessidade de criar um meio computacional que permitisse armazenar grande quantidade de dados, de acesso rápido e facilitado, também teve sua evolução, dos inconvenientes que os sistemas de arquivos em disco possuiam: Não possuía controle de acesso concorrente (vários usuários); Não permitia executar mais de um processo ao mesmo tempo num mesmo arquivo de dados; A definição da estrutura do arquivo encontrava-se inserida no próprio aplicativo – os programas controlavam as tarefas de leitura e gravação – manutenção dos sistemas tornavam-se complexas; Inconsistências, redundâncias, dificuldades de acesso e isolamento dos dados; Problemas de segurança, relativo aos dados; Acesso ao arquivo era efetuado de forma direta pelo aplicativo – sistema; Prof. João Ricardo Andrêo 31/05/2017 08:13 6 Tecnologias e Linguagens para Banco de Dados I - WEB Prof. João Ricardo Andrêo 31/05/2017 08:13 7 Tecnologias e Linguagens para Banco de Dados I - WEB Sistema Gerenciador de Banco de Dados (SGBD) Conhecido também como DBMS (Data Base Management System) é um software ou um conjunto de programas que tem o objetivo de fornecer ferramentas para armazenar grande volume de dados, de maneira rápida e precisa, mantendo as informações coesas, controlando o acesso às mesmas, disponibilizando recursos de apoio ao desenvolvimento de aplicações, segurança no armazenamento (cópia de segurança e restaurações), bem como o monitoramento constante do desempenho das tarefas e ações no acesso às mesmas. Prof. João Ricardo Andrêo 31/05/2017 08:13 8 Tecnologias e Linguagens para Banco de Dados I - WEB Prof. João Ricardo Andrêo 31/05/2017 08:13 9 Tecnologias e Linguagens para Banco de Dados I - WEB Usuários navegantes(telefonistas,a gentes, etc) Interface com as aplicações Programadores de aplicações Programas de aplicações Pré-compilador de comandos DML Programas de aplicações em código objeto Gerenciador de transações Usuários sofisticados Consulta (query) Compilador DML Administrador de banco de dados Usuários Esquema de banco de dados Interpretador DDL Processador de consultas Componente de execução de consultas Sistema gerenciador de banco de dados Gerenciador de buffer Gerenciador de memória Gerenciador de arquivos Índices Arquivos de Dados Dados Estatísticos Armazenamento em disco Dicionário de Dados Prof. João Ricardo Andrêo 31/05/2017 08:13 10 Tecnologias e Linguagens para Banco de Dados I - WEB Sistema Gerenciador de Banco de Dados (SGBD) Segue uma relação de alguns softwares de sistemas gerenciadores. Alguns fizeram sucesso e não são mais produzidos e outros não possuem as características completas de um sistema gerenciador, portanto devem ser considerados apenas como banco de dados e não um completo sistema gerenciador de banco de dados. Dbase Interbase Paradox SqlServer Dataflex Sybase FoxBase/FoxPro MySQL Access PostgreSQL Oracle Informix DB2 ZIM Prof. João Ricardo Andrêo 31/05/2017 08:13 11 Tecnologias e Linguagens para Banco de Dados I - WEB Campos, Registro e Tabelas Nos diversos ambientes de trabalho, existem os vocabulários e termos técnicos específicos de cada área. No ambiente computacional não é diferente, então vamos tratar de algumas dessas terminologias. Quando utilizamos banco de dados, necessitamos possuir os conceitos de campos, registros e tabelas. Campo(s) É a menor unidade destinada ao armazenamento de um valor, ou um dado, existente em uma tabela de banco de dados. Cada campo deve conter apenas um tipo de dado finito. Prof. João Ricardo Andrêo 31/05/2017 08:13 12 Tecnologias e Linguagens para Banco de Dados I - WEB Campo(s) Exemplo: Brinquedos e Jogos LEGAL Av. São Paulo, 474 Centro Jundiaí SP Acima temos o exemplo de um endereço completo de uma empresa, mas como armazenar estes dados num banco de dados ? É necessário separar em partes, assumindo que cada linha é uma fração finita do todo (informação). Então cada linha deve ocupar uma coluna para separar o dado. A estruturação do banco de dados é uma das principais atividades na tarefa de projetar um sistema, isto é, definir os campos que irão compor as tabelas. Estes campos recebem uma identificação e uma especificação do tipo de dado capaz de ser armazenado. Prof. João Ricardo Andrêo 31/05/2017 08:13 13 Tecnologias e Linguagens para Banco de Dados I - WEB CAMPOS Prof. João Ricardo Andrêo 31/05/2017 08:14 14 Tecnologias e Linguagens para Banco de Dados I - WEB Campo(s) O tipo de dado que pode ser atribuído ao(s) campo(s) é: caractere (texto), numérico (com decimais ou não), data, hora e lógico (valores do tipo verdadeiro ou falso). Alguns bancos de dados possuem outros tipos como: XML, GEOGRAPHY, BLOB etc. Os campos do tipo caractere (string) podem ter tamanho fixo ou variável, isto irá depender também do banco de dados. Registro(s) É um conjunto de campos de uma tabela (linha). É a unidade básica da informação, ou seja, o conjunto de todos os campos de uma linha caracterizam a informação completa de uma entidade. Os registros podem ser chamados também de tuplas. Prof. João Ricardo Andrêo 31/05/2017 08:14 15 Tecnologias e Linguagens para Banco de Dados I - WEB R E G I S T R O S Prof. João Ricardo Andrêo 31/05/2017 08:14 16 Tecnologias e Linguagens para Banco de Dados I - WEB Tabela(s) Uma tabela é um conjunto de registros (linhas), na qual, cada linha possui a mesma quantidade de campos (colunas). Cada linha é um registro, uma informação completa sobre a entidade da tabela, ou seja, se temos uma tabela de CLIENTE, o registro é o conjunto de informações sobre o mesmo. Por sua vez, a tabela é um conjunto de registros, ou seja, a informação de vários clientes armazenados. Desta forma devemos entender que para cada entidade ou assunto criamos uma tabela, por exemplo. Se desejamos guardar informações de fornecedores, criamos uma tabela FORNECEDOR, se desejamos guardar informações sobre automóveis, criamos uma tabela AUTOMOVEL, e assim sucessivamente. As tabelas devem ser identificadas com nomes distintos (não se repetem) dentro do banco de dados, como os campos também devem ter nomes distintos dentro da tabela. Prof. João Ricardo Andrêo 31/05/2017 08:14 17 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de dados Tabelas Registros Campos Tabelas Registros Campos Tabelas Registros Campos Prof. João Ricardo Andrêo 31/05/2017 08:14 18 Tecnologias e Linguagens para Banco de Dados I - WEB Tipos de Bancos de Dados Os bancos de dados podem ser classificados de diversas formas. Vamos trabalhar com a classificação baseada no modelo de dados. Atualmente os modelos mais utilizados comercialmente são: o modelo de dados relacional e o modelo de dados de objeto. Podemos encontrar também: modelo de dados hierárquico, modelo de dados de rede e o modelo de dados de lista invertida (não muito utilizado atualmente). Prof. João Ricardo Andrêo 31/05/2017 08:14 19 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de Dados Relacional Caracteriza-se pela organização dos dados em tabelas, formadas por linhas e colunas. Assim como na matemática, essas tabelas são conjuntos de elementos ou objetos referentes a um mesmo assunto, de modo organizado. Na matemática estas tabelas/conjuntos podem estabelecer uma relação entre dois ou mais conjuntos, através de elementos em comum. Os princípios básicos de sistemas de banco de dados relacional foram formulados pelo Dr. Edgard F. Cood (1923 a 2003), em 1968, tendo como base a teoria dos conjuntos e da álgebra relacional. Por ter sido um conceituado matemático, ele propôs a aplicação desses conceitos para a criação de um banco de dados relacional. Prof. João Ricardo Andrêo 31/05/2017 08:14 20 Tecnologias e Linguagens para Banco de Dados I - WEB Prof. João Ricardo Andrêo 31/05/2017 08:14 21 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de Dados Hierárquico Caracteriza-se pelo relacionamento PAI-FILHO , onde cada entidade possui uma coleção de valores, chamada de registro, que representa informações sobre a entidade. O registro que antecede outro na hierarquia é denominado PAI e os registros que sucedem a este, são chamados de FILHOS. Neste relacionamento, o registro PAI, pode se corresponder com vários (ou nenhum) registros FILHO. Num diagrama hierárquico, a representação é feita por retângulos e linhas ligando PAI e FILHO numa organização estrutural semelhante a uma árvore, ou mesmo um organograma empresarial. Prof. João Ricardo Andrêo 31/05/2017 08:14 22 Tecnologias e Linguagens para Banco de Dados I - WEB Exemplo Diagrama Hierárquico (PAI) Fornecedor (FILHO) Produto Contas a Pagar Prof. João Ricardo Andrêo 31/05/2017 08:14 23 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de Dados Hierárquico (continuação) Este esquema hierárquico representa uma estrutura de árvore, apresentando as seguintes propriedades: • Registro que não possui um PAI, pode ser chamado de RAIZ. • Com exceção do registro RAIZ, todos os demais registros correspondem a registros FILHO dentro de um único tipo de relacionamento. • Um registro PAI pode aparecer em qualquer número de relacionamentos. • Um registro FILHO, que não possue descendentes, é denominado FOLHA no esquema hierárquico. Este tipo, ainda é utilizado em alguns ambientes de equipamentos de grande porte. Referimo-nos a este relacionamento como um par ordenado, tendo o registro PAI e o registro FILHO. (FORNECEDOR, PRODUTO) (FORNECEDOR, CONTAS A PAGAR) Prof. João Ricardo Andrêo 31/05/2017 08:14 24 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de Dados de Rede Sistema largamente utilizado em computadores de grande porte, parecendo com o sistema hierárquico, diferindo no fato de que um mesmo registro pode participar de vários relacionamentos, pois eliminou-se a hierarquia. Outro diferencial é a possibilidade de acesso direto a um determinado registro, enquanto que no sistema hierárquico era necessariamente obrigatório passar pela raiz até chegar ao registro desejado. Os comandos para manipular os registros eram incorporados a aplicação, que normalmente eram desenvolvidas em COBOL, PASCAL ou FORTRAN. A estrutura do banco de dados de rede é: registro (records) e o conjunto destes (sets). Este conjunto possui em sua definição três compoenentes: nome do tipo de conjunto, tipo de registro proprietário e tipo de registro membro, conforme o próximo slide. Prof. João Ricardo Andrêo 31/05/2017 08:14 25 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de Dados de Rede Tipo de Conjunto DEP_FUNC Registro Proprietário DEPARTAMENTO Registro Membro FUNCIONARIO Os conjuntos de registros são relacionados na forma 1:N (um para muitos), através de uma seta, como mostra a figura ao lado. Cada ocorrência relaciona um registro proprietário com um ou mais registros do tipo membro ( ou mesmo nenhum). Tecnicamente pode-se dizer que o registro proprietário possui um ponteiro que “aponta” para uma registro membro DEPARTAMENTO DEP_FUNC FUNCIONARIO Prof. João Ricardo Andrêo 31/05/2017 08:14 26 Tecnologias e Linguagens para Banco de Dados I - WEB Banco de Dados Orientado a Objeto Devido as limitações dos sistemas relacionais da época e da necessidade de armazenar dados complexos de sistemas CAD/CAM/CAE e também de informações geográficas surgiram os SGBDOO. Estes sistemas são utilizados em aplicações especializadas, como as científicas. Atualmente os sistemas relacionais evoluíram e estão capacitados a armazenar dados complexos, conhecidos então como modela Objeto-Relacional. O banco de dados orientado objeto, possui conceitos da programação orientada objeto, como a definição de: classes, objetos, métodos, encapsulamento, herança, polimorfismo, etc. Como exemplos de linguagens orientada a objeto pode-se citar: Java, C++, VBNet, Delphi, etc. Prof. João Ricardo Andrêo 31/05/2017 08:14 27 Tecnologias e Linguagens para Banco de Dados I - WEB Definições: Dado: É a representação do núcleo da informação registrado em um papel, quadro de aviso ou em um dispositivo de armazenamento do computador. Exemplo: Temperatura=38 graus Celsius Informação: É qualquer fato ou conhecimento do mundo, que pode ser registrado ou não. Exemplo: Está muito quente hoje ... Banco de Dados: É uma coleção de dados (palavras, números, imagens, etc), ordenados que possuem um significado. Prof. João Ricardo Andrêo 31/05/2017 08:14 28 Tecnologias e Linguagens para Banco de Dados I - WEB Atividades: 1. O que é um Sistema Gerenciador de Banco de Dados ? 2. O que é um dado ? 3. O que é um campo ? 4. O que é um registro ? 5. O que é uma tabela ? 6. Quanto a classificação de banco de dados, baseada no modelo, cite 3 tipos. Prof. João Ricardo Andrêo 31/05/2017 08:14 29