Aplicações com Banco de Dados e Cliente-Servidor

Documentos relacionados
Aplicações com Banco de Dados e Cliente-Servidor

Orientação a Objetos e UML

Aplicações com Banco de Dados e Cliente-Servidor

BCD29008 Banco de dados

BCD29008 Banco de dados

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Introdução. Motivação. Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados (BD) Sistema de Banco de Dados (SBD)

Banco de Dados. Perspectiva Histórica dos Bancos de Dados. Prof. Walteno Martins Parreira Jr

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BANCO DE DADOS. Araújo Lima. Jan / Araújo

Curso: Banco de Dados I. Conceitos Iniciais


Aula 2 BD Introdução. Profa. Elaine Faria UFU

Introdução. Bases de Dados (CC2005) Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Revisão de Bancos de Dados

Prof. Marcelo Machado Cunha

Banco de dados. Prof. Emiliano S. Monteiro 5º.Sem. Licenciatura

Bancos de Dados Distribuídos

Introdução a Banco de Dados Prof. Msc Denival A. dos Santos

Introdução à Banco de Dados

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Arquivo. Banco de Dados. Organização dos Arquivos. Banco de Dados. Banco de Dados. Introdução a Computação

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

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

Banco de Dados. Introdução e Definições

Introdução a Bancos de Dados

Banco de Dados I Introdução SQL

BANCO DE DADOS AULA-01. Prof. Fabiano Papaiz IFRN

A U L A 1 I N T R O D U Ç Ã O A B A N C O D E D A D O S E V I S Ã O G E R A L D O S Q L

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Korth Silberschatz Sundarshan. Sistema de Banco de Dados, 5/E

Conceitos e arquitetura do banco de dados. Andre Noel

Banco de dados 1. Linguagem SQL DDL e DML Parte 2. Professor: Victor Hugo L. Lopes

BANCO DE DADOS GERENCIAL 1 A U L A 2

Aula 01 Conceito de Banco de Dados e SGBD

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

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

POO - Programação Orientada a Objetos

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

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Sistema Gestor de Bancos de Dados (SGBD)

Sistemas da Informação. Banco de Dados I. Edson Thizon

Introdução a B anco de Dados. INE5206 Introdução à Informática INE/CTC/UFSC Prof. Roberto Willrich

Técnico em Informática. Banco de Dados. Profª Ana Paula Mandelli

BCD29008 Banco de dados

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS

UML - Linguagem de Modelagem Unificada

SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

Banco de Dados. Banco de Dados

Aula 06 Sistemas Embarcados LT38C

Linguagem de Consulta Estruturada (SQL)

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Banco de Dados. Banco de Dados II. Característica fundamental de SGBDs. Abordagem SGBD x Processamento de Arquivos Tradicional

Bases de Dados. Parte I: Conceitos Básicos. Parte I

2. Conceitos e Arquiteturas de um SGBD

Sistemas de Informações Gerenciais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Orientação a Objetos e UML

Bases de Dados. Parte I: Conceitos Básicos

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Banco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

Bases de Dados. Parte I: Conceitos Básicos

Banco de Dados I. Prof. Edson Thizon

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

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

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

Introdução ao Banco de Dados. Banco de Dados

Marcio Victorino

Banco de Dados 08/08/2010

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

Programação com Acesso a Banco de Dados

Acesso a Banco de Dados usando C#

Orientação a Objetos e UML

MODELAGEM DE DADOS UNIDADE 1 Visão Geral. Luiz Leão

BCD29008 Banco de dados

BANCO DE DADOS. Vinícius Pádua

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

Arquiteturas de Sistemas de Informação Geográfica

Modelagem Física e SQL

Sistemas de Informação (SI) Gestão da informação e de banco de dados (II)

Aula 01. Introdução aos sistemas de informação Conceitos de banco de dados Modelos de BD Linguagens de Banco de Dados Usuários de um Banco de Dados

Banco de Dados I. Sejam bem-vindos! Prof. Fred Lucena. 1

Banco de Dados. Aula 01. Prof. Diemesleno Souza Carvalho

Apresentação da Unidade Curricular

Conceitos de Sistemas de Banco de Dados INE 5323

Protótipo de um ORM para a plataforma.net. Orientador: Adilson Vahldick

Modelagem Física e SQL

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução a Sistemas Gerenciadores de Banco de Dados

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

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Transcrição:

Aplicações com Banco de Dados e Cliente-Servidor Aula #22.1. EBS 211 POO e UML Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã

Roteiro Persistência de dados; SGBDs; Exemplo de normalização; Exemplo de mapeamento objeto-relacional. 2

Persistência de dados 3

Persistência de dados Até o momento, os objetos instanciados têm sido guardados na memória RAM. 4

Persistência de dados Até o momento, os objetos instanciados têm sido guardados na memória RAM. O que ocorre se o programa for finalizado? 5

Persistência de dados Até o momento, os objetos instanciados têm sido guardados na memória RAM. O que ocorre se o programa for finalizado? Persistir os dados/objetos significa armazenálos de maneira não volátil. 6

Persistência de dados Até o momento, os objetos instanciados têm sido guardados na memória RAM. O que ocorre se o programa for finalizado? Persistir os dados/objetos significa armazenálos de maneira não volátil. Exemplo: no disco rígido. 7

Persistência de dados Até o momento, os objetos instanciados têm sido guardados na memória RAM. O que ocorre se o programa for finalizado? Persistir os dados/objetos significa armazenálos de maneira não volátil. Exemplo: no disco rígido. Resultado: os dados não serão perdidos, poderão ser recuperados numa próxima execução do sistema! 8

SGBD 9

SGBD Sistema Gerenciador de Banco de Dados 10

SGBD Sistema Gerenciador de Banco de Dados Armazena dados de forma autônoma em relação às aplicações 11

SGBD Sistema Gerenciador de Banco de Dados Armazena dados de forma autônoma em relação às aplicações Objetivo 12

SGBD Sistema Gerenciador de Banco de Dados Armazena dados de forma autônoma em relação às aplicações Objetivo Armazenar, de maneira eficiente e com segurança, grandes volumes de dados; 13

SGBD Sistema Gerenciador de Banco de Dados Armazena dados de forma autônoma em relação às aplicações Objetivo Armazenar, de maneira eficiente e com segurança, grandes volumes de dados; Tornar dados disponíveis para busca e atualização. 14

15

16

Vantagens dos SGBDs: 17

Vantagens dos SGBDs: Independência de dados: Evita que aplicações/usuários se envolvam com manutenção dos dados e detalhes de hardware; 18

Vantagens dos SGBDs: Independência de dados: Evita que aplicações/usuários se envolvam com manutenção dos dados e detalhes de hardware; Integridade de dados: Minimiza redundâncias, aumenta a consistência e a validade dos dados; 19

Vantagens dos SGBDs: Independência de dados: Evita que aplicações/usuários se envolvam com manutenção dos dados e detalhes de hardware; Integridade de dados: Minimiza redundâncias, aumenta a consistência e a validade dos dados; Acesso padronizado e flexível: Uso de linguagem específica para busca, persistência e atualização dos dados; 20

Vantagens dos SGBDs: Independência de dados: Evita que aplicações/usuários se envolvam com manutenção dos dados e detalhes de hardware; Integridade de dados: Minimiza redundâncias, aumenta a consistência e a validade dos dados; Acesso padronizado e flexível: Uso de linguagem específica para busca, persistência e atualização dos dados; Multiusuário e concorrente: Acesso seguro e compartilhado dos dados. 21

Integridade de dados Garantia de dados corretos com relação ao domínio de aplicação 22

Integridade de dados Garantia de dados corretos com relação ao domínio de aplicação Exemplos? 23

Integridade de dados Garantia de dados corretos com relação ao domínio de aplicação Exemplos? Um campo só pode aceitar valores do domínio Sexo: F/M 24

Integridade de dados Garantia de dados corretos com relação ao domínio de aplicação Exemplos? Um campo só pode aceitar valores do domínio Sexo: F/M Regras de negócio O estoque não pode ser negativo 25

Integridade de dados Garantia de dados corretos com relação ao domínio de aplicação Exemplos? Um campo só pode aceitar valores do domínio Sexo: F/M Regras de negócio O estoque não pode ser negativo Unicidade das entidades RG contém valor único (não repete para outra pessoa) 26

Acesso padronizado e flexível Métodos de acesso DDL (Data Definition Language); DML (Data Manipulation Language); 27

Acesso padronizado e flexível Métodos de acesso DDL (Data Definition Language); DML (Data Manipulation Language); 28

Acesso padronizado e flexível Métodos de acesso DDL (Data Definition Language); DML (Data Manipulation Language); Frameworks: Mapeamento Objeto-Relacional (ORM) 29

Exemplos de SGBDs (Relacionais) Microsoft SQL Server: um dos mais conhecidos; 30

Exemplos de SGBDs (Relacionais) Microsoft SQL Server: um dos mais conhecidos; Oracle Server: um dos maiores e mais robustos; 31

Exemplos de SGBDs (Relacionais) Microsoft SQL Server: um dos mais conhecidos; Oracle Server: um dos maiores e mais robustos; MySQL: software livre com código fonte aberto; 32

Exemplos de SGBDs (Relacionais) Microsoft SQL Server: um dos mais conhecidos; Oracle Server: um dos maiores e mais robustos; MySQL: software livre com código fonte aberto; Firebird: possui código fonte aberto e roda tipicamente no Unix; 33

Exemplos de SGBDs (Relacionais) Microsoft SQL Server: um dos mais conhecidos; Oracle Server: um dos maiores e mais robustos; MySQL: software livre com código fonte aberto; Firebird: possui código fonte aberto e roda tipicamente no Unix; Microsoft Access: acompanha o Pacote Office e é pouco robusto, mas amigável; 34

Mas como os dados ficam organizados?! 35

Mas como os dados ficam organizados?! Em tabelas que se relacionam entre si1 1. Norteadas por princípios matemáticos, teoria dos conjuntos e álgebra relacional. 36

Mas como os dados ficam organizados?! Em tabelas que se relacionam entre si1 ID Relação 1. Norteadas por princípios matemáticos, teoria dos conjuntos e álgebra relacional. 37

ID 38

Noções de projeto de banco de dados Normalização: ID_Vendedor Nome_Vendedor Cliente 001 Luciano 003 Juca 001 Luciano 006 Claudia 002 Marcos 008 Henry 003 Rubens 006 Claudia 39

Noções de projeto de banco de dados Normalização: ID_Vendedor Nome_Vendedor Cliente 001 Luciano 003 Juca 001 Luciano 006 Claudia 002 Marcos 008 Henry 003 Rubens 006 Claudia Venda (ID_Vendedor, Nome_Vendedor, {Cliente(ID_Cliente, Nome_Cliente)}) 40

Noções de projeto de banco de dados Normalização: Venda Cliente Vendedor ID_Vendedor Nome_Vendedor ID_Cliente Nome_Cliente ID_Vendedor ID_Cliente 001 Luciano 003 Juca 001 003 002 Marcos 006 Claudia 001 006 003 Rubens 008 Henry 002 008 003 006 Vendedor (ID_Vendedor, Nome_Vendedor) Cliente(ID_Cliente, Nome_Cliente) Venda(ID_Vendedor, ID_Cliente,...) 41

Noções de projeto de banco de dados Normalização: Venda Cliente Vendedor ID_Vendedor Nome_Vendedor ID_Cliente Nome_Cliente ID_Vendedor ID_Cliente 001 Luciano 003 Juca 001 003 002 Marcos 006 Claudia 001 006 003 Rubens 008 Henry 002 008 003 006 Vendedor (ID_Vendedor, Nome_Vendedor) Cliente(ID_Cliente, Nome_Cliente) Venda(ID_Vendedor, ID_Cliente,...) 42

Noções de projeto de banco de dados Normalização: Venda Cliente Vendedor ID_Vendedor Nome_Vendedor ID_Cliente Nome_Cliente ID_Vendedor ID_Cliente 001 Luciano 003 Juca 001 003 002 Marcos 006 Claudia 001 006 003 Rubens 008 Henry 002 008 003 006 Vendedor (ID_Vendedor, Nome_Vendedor) Cliente(ID_Cliente, Nome_Cliente) Venda(ID_Vendedor, ID_Cliente,...) 43

Noções de projeto de banco de dados Normalização: Venda Cliente Vendedor ID_Vendedor Nome_Vendedor ID_Cliente Nome_Cliente ID_Vendedor ID_Cliente 001 Luciano 003 Juca 001 003 002 Marcos 006 Claudia 001 006 003 Rubens 008 Henry 002 008 003 006 Vendedor (ID_Vendedor, Nome_Vendedor) Cliente(ID_Cliente, Nome_Cliente) Venda(ID_Vendedor, ID_Cliente,...) 44

Noções de projeto de banco de dados Normalização: Identifica erros e oferece métodos para corrigir 45

Noções de projeto de banco de dados Normalização: Identifica erros e oferece métodos para corrigir Repetição de informação (consistência); 46

Noções de projeto de banco de dados Normalização: Identifica erros e oferece métodos para corrigir Repetição de informação (consistência); Perda de informação; 47

Noções de projeto de banco de dados Normalização: Identifica erros e oferece métodos para corrigir Repetição de informação (consistência); Perda de informação; Facilita representação do domínio. 48

Exercício extraclasse Normalizar a tabela Aluguel_Carros criando adequadamente novas tabelas com os dados apresentados: Aluguel_Carros ID_Carro Marca_Carro Modelo_Carro ID_Cliente Nome_Cliente Endereco_Cliente Dias_Aluguel Valor_Dia_Aluguel 022 VW Fox 005 Beto Rua Fim dos Tempos, N. 105 7 80,00 006 Honda CR-V 011 Lucíola Avenida Eu Avisei, N. 70 3 145,00 039 Chevrolet Cruze 068 Ezequiel Rua Sabe de Nada Inocente, N. 489 10 125,50 006 Honda CR-V 004 Rita Avenida Eu Quero Café, N. 9 2 145,00 030 VW Up! 005 Beto Rua Fim dos Tempos, N. 105 3 70,50................... 49

Mas como levar objetos para bancos de dados relacionais?! 50

Mas como levar objetos para bancos de dados relacionais?! Mapeamento Objeto-Relacional (ORM) Conversão de objetos em modelos relacionais 51

Mas como levar objetos para bancos de dados relacionais?! Mapeamento Objeto-Relacional (ORM) Conversão de objetos em modelos relacionais Cliente - nome: string - endereco: string Conta - numero: int - saldo: double 52

Mas como levar objetos para bancos de dados relacionais?! Mapeamento Objeto-Relacional (ORM) Conversão de objetos em modelos relacionais Cliente - nome: string - endereco: string Cliente nome varchar(50) endereco varchar(50) tem Conta - numero: int - saldo: double Conta numero integer saldo double 53

Mas como levar objetos para bancos de dados relacionais?! Mapeamento Objeto-Relacional (ORM) Conversão de objetos em modelos relacionais Cliente Cliente nome varchar(50) endereco varchar(50) - nome: string - endereco: string ORM tem Conta - numero: int - saldo: double Conta numero integer saldo double 54

Mas como levar objetos para bancos de dados relacionais?! Mapeamento Objeto-Relacional (ORM) Conversão de objetos em modelos relacionais Na memória No BD (disco rígido) Cliente Cliente nome varchar(50) endereco varchar(50) - nome: string - endereco: string ORM tem Conta - numero: int - saldo: double Conta numero integer saldo double 55

Noções de projeto de camada para Mapeamento Objeto-Relacional (ORM) Diagrama de classes Fornecedor - nome: string - endereco: string - telefones: string[ ] 56

Noções de projeto de camada para Mapeamento Objeto-Relacional (ORM) Diagrama de classes Fornecedor - nome: string - endereco: string - telefones: string[ ] Diagrama Entidade Relacionamento Fornecedor 1 idfornecedor integer nomefornecedor varchar(50) endfornecedor varchar(100) TelefoneFornecedores possui N idtelefone integer idfornecedor integer numtelefone varchar(30) 57

Exercício extraclasse E se fosse necessário armazenar mais um campo (do tipo string) que é a operadora do telefone?! Como ficaria o diagrama de classes?! Como ficaria o diagrama entidade relacionamento?! 58

ADO.Net Fornece um conjunto de ferramentas para acessar dados relacionais Permite projetar uma camada de acesso aos dados, por exemplo, no C#: classes para conexão, CRUD (create, read, update and delete), etc. 59

Leitura recomendada: http://csharp-station.com/tutorial/adodotnet 60

Módulo de localizações Mapa - regiao: string GPS Módulo de trajetos/rotas - latitude: double - longitude: double - altura: double Trajeto Tratores autônomos + Distancia(...):... Irrigação Inteligente Controle de galpões Módulo de informações do clima Regiao Clima + DadosClima(...):... - temperatura: double - chuva: bool - vento: double Sensoriamento por VANTs 61

BD Camada de acesso (Framework, ADO.NET, etc.) Cultura Trator Trajeto - area: double Mapa - região: string + MelhorRota(...):... + Distancia(...):... Controle de tratores autônomos GPS - latitude: double - longitude: double - altura: double 62

Referências DEITEL, P. J. C# - Como Programar. 1 ed. São Paulo: Pearson, 2003. (Link: http://unesp.bv3.digitalpages.com.br/users/publications/97885 4614597) Capítulo 19 (págs 773~807). 63

Próxima aula: Dia 16/11 Sala 8 Material em http://luizcoletta.com/ebs211 Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã