Informática para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 9. Pedro Barahona 2018 / 19

Tamanho: px
Começar a partir da página:

Download "Informática para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 9. Pedro Barahona 2018 / 19"

Transcrição

1 Informática para as Ciências e Engenharias Versão : C (Engenharia Civi) Aua 9 Pedro Barahona 2018 / 19

2 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQLITE SQLITE e Python Resoução de probema Nota: Aguns sides adaptados de N. De, J. Lewis, Computer Science Iuminated, 4th Ed 2

3 Bases de Dados Base de Dados: Conjunto de dados estruturado. Semehante a vetores de dicionários vistos na aua passada. Bastante comum para guardardados. Permite usar os dados em diferentes programas (até usando diferentes inguagens). Incui: Suporte ao armazenamento permanente (em ficheiros). Operações para criar, inserir, consutar/procurar, aterar, apagar, etc. 3

4 Sistemas de Gestão de Bases de Dados Sistema de Gestão de Bases de Dados (SGBD) (Database managementsystem, DBMS) Combinação de software e dados: Base de dados (física) Ficheirosestruturados, com osdados. Motor de base de dados (Database Engine) Software que suporta a consuta e modificação dos dados. Esquema de base de dados (Database Schema): Especificação da organização ógica dos dados. 4

5 Sistemas de Gestão de Bases de Dados Esquema da base de dados Utiizador/ Programador Motor da base de dados Ficheiros de suporte da base de dados 5

6 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQLITE SQLITE e Python Resoução de probema 6

7 SGBDs - Modeo Reaciona Usado para descrever a BD e as suas reações Registo (objecto, enedade) Conjunto de atributos (campos) reacionados Anáogo aos dicionários outupos em Python. Campo (ou atributo) Um dos campos de um registo da base de dados. Tabea Conjuntode registos. Anáogo ao vector de dicionários em Python. Base de dados reaciona Conjuntode tabeas reacionadas 7

8 Exempo Tabea de Fimes Tabea de Aunos de uma base de dados universitária (DBU) Muito Simpificada poucos aunos, pouca informação sobre cada um número nome sexo idade Pedro Ameida m João Teixeira m João Manteiga m Dinis Lopes m Rafaea Cartaxo f Raque Moura f 19 Como identificar um registo? 8

9 Tabeas e Chaves A tabea Aunos tem quatro campos Número Nome Sexo Idade número nome sexo idade Pedro Ameida m João Teixeira m João Manteiga m Dinis Lopes m Rafaea Cartaxo f Raque Moura f 19 Chave primária (primary key) Um campo ou combinação de campos que identifica inequivocamente esse registo A chave primária é o número (os outros campos podem não ser diferentes) 9

10 Exempo Tabea de Cientes Tabea de Cadeiras da base de dados universitária (DBU) código nome setor Dinâmica dos Corpos Rígidos EC Informática para Ciências e Engenharias C INF 1837 Materiais de Construção I EC 5004 Anáise Matemática III C MAT Anáise de Estruturas I EC A chave primária é o código (podia ser o nome da cadeira?) 10

11 Exempo Tabea de Augueres Como se reacionam os Aunos com as Cadeiras? Através de uma tabea de Notas! A tabea Notas tem duas chaves externas: auno_id, que a iga à tabea Aunos cadeira_id, que a iga à tabea Cadeiras registo auno_id cadeira_id nota ano D registo é a suachave primária não pode haver dois ançamentos com o mesmo nº de registo 11

12 Queries com várias Tabeas Quais as Cadeiras frequentadas peo Pedro Ameida? registo auno_id cadeira_id nota ano D número nome sexo idade Pedro Ameida m João Teixeira m João Manteiga m Dinis Lopes m Rafaea Cartaxo f Raque Moura f 19 código nome setor Dinâmica dos Corpos Rígidos EC Informática para Ciências e Engenharias C INF 1837 Materiais de Construção I EC 5004 Anáise Matemática III C MAT Anáise de Estruturas I EC 20 Maio : SQL (várias tabeas); Simuação modeos cononuos 12

13 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQLITE SQLITE e Python Resoução de probema 13

14 SQL (Structured Query Language) Uma inguagem para manipuar dados e efetuar perguntas (queries) sobre os dados armazenados na base de dados. Interpretada peo motor do SBD Independente das inguagensde programação Utiizáve interativamente peo utiizador Permite: Criar tabeas, descrevendo osseuscampos (esquema). Inserir, aterar e remover registos das tabeas. Fazer perguntas (interrogações). 14

15 Criação de Tabeas em SQL Tabeas são criadas com a instrução CREATE CREATE TABLE nome-tabea ( Campo-1 tipo-1, Campo-2 tipo-2,... Campo-n tipo-n ); Nome databea Esquema da Tabea em que para aém do nome da tabea são identificados os seus campos com os respectivos tipos. Tipicamente os tipos utiizados são numéricos, textuais ou Booeanos (BOOL). Nota: A tabea é criada sem registos 15

16 Criação de Tabeas em SQL código nome setor Dinâmica dos Corpos Rígidos EC Informática para Ciências e Engenharias C INF 1837 Materiais de Construção I EC 5004 Anáise Matemática III C MAT Anáise de Estruturas I EC bd >> CREATE TABLE Cadeiras ( codigo INTEGER, nome TEXT,...>> setor VARCHAR(3)); bd >> Em SQL é indiferente escrever as paavras-chave em maiúscuas ouminúscuas. No entanto, é comum escrever-se emmaiúscuas. Quanto aos nomes dos campos e tabeas depende do sistema. À cautea, é mehor escrever estes nomes de forma consistente. 16

17 Aguns Tipos usados em SQL Tiposnuméricos mais utiizados: INTEGER: Inteiro; REAL: Rea (com precisão simpes) DOUBLE: Rea (com precisão dupa) Tiposde string: CHAR(N): string com exactamente N caracteres. VARCHAR(N): string com N caracteres no máximo TEXT: string mais onga Nota: em Sqite3, as trings são todas tratadas como TEXT O número de caracteres não é vaidado 17

18 Criação de Tabeas em SQL Na criação de Tabeas deve ser especificadauma chave primária A chave primária corresponde ao campo (ou combinação de campos) que identificam inequivocamente cada registo. bd >> CREATE TABLE Cadeiras ( codigo INTEGER, nome TEXT,...>> setor VARCHAR(3), PRIMARY KEY(codigo)); bd >> Repetições (registos com a mesma chave primária) não são permitidas (é reportado um erro). Neste exempo, não podem ser criadas duas cadeiras com o mesmo código! «Mas podem ter o mesmo nome (ex. para cursos diferentes) 18

19 Criação de Tabeas em SQL Exempo: Tabea de Aunos número nome sexo idade Pedro Ameida m João Teixeira m João Manteiga m Dinis Lopes m Rafaea Cartaxo f Raque Moura f 19 bd>> CREATE TABLE Aunos ( numero INTEGER, Nome TEXT,..>> sexo CHAR(1), idade Integer, PRIMARY KEY(numero)); bd>> 19

20 Criação de Tabeas em SQL Exempo: Tabea de Notas registo auno_id cadeira_id nota ano D bd >> CREATE TABLE Notas ( registo INTEGER, auno_id INTEGER,...>> cadeira_id TEXT, nota TEXT, ano INTEGER,...>> PRIMARY KEY(registo)); bd >> 20

21 Eiminação de Tabeas em SQL Eiminar Tabea: DROP Após a criação de uma tabea que por agum motivo não nos interessa, por exempo, bd >> CREATE TABLE Errada (Num INTEGER, Nome TEXT); bd >> ea pode ser eiminada (com todos os registos nae incuidos) através do comando DROP bd >> DROP TABLE Errada; bd >> 21

22 Inserção de Registos em SQL Inserir registos: INSERT Um registo pode ser inserido numa tabea com a instrução INSERT INSERT INTO tabea VALUES ( vaor1, vaor2,..., vaorn) Os vaores dos campos neste registo, são indicados na mesma ordem da definição origina dos campos no CREATE TABLE. código nome setor Dinâmica dos Corpos Rígidos EC Informática para Ciências e Engenharias C INF 1837 Materiais de Construção I EC 5004 Anáise Matemática III C MAT Anáise de Estruturas I EC bd >> INSERT INTO Cadeiras VALUES (...>> 10432, "Dinamica dos Corpos Rigidos", "EC"); bd >> 22

23 Seecção de Registos em SQL Seecionar registos: SELECT Um ou mais registos podem ser seecionados duma ou mais tabeas com a instrução SELECT SELECT ista-campos FROM ista-tabeas WHERE condição ORDER BY campo; Os registos são fitrados pea condição WHERE Podem ser apresentados de uma forma ordenada pea opção ORDER BY. 23

24 Seecção de Registos em SQL Aguns exempos (umasó tabea): bd >> SELECT * FROM Aunos; % mostra todos os registos da tabea Aunos bd >> SELECT Nome FROM Aunos WHERE sexo = "f"; % mostra o nome de todos as aunos da tabea Aunos % cujo sexo seja f" bd >> SELECT Numero, Nome FROM Aunos ORDER BY Nome; % mostra os campos Numero e Nome dos registos da tabea % Aunos ordenados afabeticamente peo campo Nome 24

25 Modificação de Registos em SQL A instrução UPDATE permite aterar vaores dos campos de uma tabea, para os registos seecionados UPDATE tabea SET campo = vaor WHERE condição; registo auno_id cadeira_id nota ano X XD bd >> UPDATE Notas SET nota = "X"...>> WHERE auno_id = 51083; % atera todos os registos da tabea Notas, cujo auno_id seja 51083, aterando o vaor do campo nota para "X". 25

26 Eiminação de Registos em SQL A instrução DELETE permite apagar todos os registos de uma tabea, seecionados por uma condição (opciona). DELETE FROM tabea WHERE condição; registo auno_id cadeira_id nota ano D bd >> DELETE FROM Notas WHERE auno_id = 68059; % atera todos os registos da tabea Notas, cujo auno_id seja Nota: Apagar todos os registos de uma tabea não a eimina. Para o fazer deve ser usado o comando DROP 26

27 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQLITE SQLITE e Python Resoução de probema 27

28 SQLite Neste curso vamos ueizar o SQLITE Motor de bases de dados Gratuito, código aberto ( htp:// ) Existem versões Windows, Linux e Mac OS X. Podemos usá-o interacevamente como interpretador de inhas de comando. Interpreta SQL e gere a base de dados 28

29 SQLite Para executar: descarregar o executáve do SQLite de hmps://sqite.org/downoad.htm No Windows: descarregar um dos ficheiros sqite-d-win64-x zip sqite-d-win32-x zip Descomprimir e coocar o ficheiro sqite3.exe na pasta de trabaho No Mac: descarregar o ficheiro sqite-toos-osx-x zip Descomprimir e coocar o ficheiro sqite3 na pasta de trabaho 29

30 SQLite Para criar/utiizar em SQLITE uma base de dados, com nome basedados, existente na directoria corrente, (ta como o programa sqite3) pode utiizarse a consoa do sistema (e.g. Cmd no Windows ou Termina no Mac) e chamar o sqite Para criar/ utiizar a base de dados utiizar o comando (que modifica o prompt) >> sqite3 basedados; sqite> No fina, vota-se à janea de comandos do OCTAVE com a comando sqite.quit (votando ao prompt inicia da consoa) sqite>.quit >> 30

31 SQLite Para aém das instruções SQL, o SQLite dispõe de aguns comandos parecuares (iniciados com. ).hep istacomandos disponíveis (aémdo SQL).read nomeficheiro executa script SQL.schema.quit istaesquemasdas tabeas sair do interpretador 31

32 SQLite.prompt first cont Modifica o prompt norma do sqite para first e o das inhas de conenuação para cont.tabes istaas tabeas.separator sep especificasep como separador dos campos.import ficheiro tabea Importa o ficheiro para a tabea assumindo os campos separadospeo separadordefinido 32

33 SQLite Exempo: Criação da base de dados bdu.bd, com uma tabea de Aunos, introduzindo-se 2 aunos (com uma mudança prévia do prompt). >> sqite3 bdu.bd sqite>.prompt 'bd>> ' '..>> bd >> CREATE TABLE Cadeiras...>> ( codigo INTEGER, nome TEXT, setor VACHAR(3),...>> PRIMARY KEY(codigo)); bd >> INSERT INTO Cadeiras VALUES (...>> 10432, "Dinamica dos Corpos Rigidos", "EC"); bd >> INSERT INTO Cadeiras VALUES (...>> 11147, "Informatica para Ciencias e Engenharias C", "INF"); bd>> SELECT * FROM Cadeiras; Dinamica dos Corpos Rigidos EC Informatica para Ciencias e Engenharias C INF bd >> 33

34 SQLite Para aém das instruções SQL, o SQLite dispõe de aguns comandos parecuares (iniciados com. ).hep istacomandos disponíveis (aémdo SQL).read nomeficheiro executa script SQL.schema.quit istaesquemasdas tabeas sair do interpretador 34

35 SQLite.prompt first cont Modifica o prompt norma do sqite para first e o das inhas de conenuação para cont.tabes istaas tabeas.separator sep especificasep como separador dos campos.import ficheiro tabea Importa o ficheiro para a tabea assumindo os campos separadospeo separadordefinido 35

36 SQLite Exempo (cont): Com a base de dados bdu.bd, já criada. bd >>.tabes Cadeiras bd >>.schema CREATE TABLE Cadeiras ( codigo INTEGER, nome TEXT, setor VACHAR(3), PRIMARY KEY(codigo)); bd >>.separator ' ::' bd >> seect * FROM Cadeiras; ::Dinamica dos Corpos Rigidos ::EC ::Informatica para Ciencias e Engenharias C ::INF bd >>.quit >> 36

37 Bases de Dados - Porquê Funcionaidade: é simpes obter respostas a questões compexas usando a inguagem SQL. Abstração: SQL é uma inguagem que permite idar com os dados e é conhecida por programadores, apicações e bibiotecas. Fiabiidade: as BDs preservam a informação, entre execuções e mesmo na ocorrência de fahas de hardware e soxware. Desempenho: as BDs foram concebidas para acessos eficientes; o processamento de interrogações SQL é normamente mais rápido do que se o programador consutasse ficheiros. Acesso concorrente: as BDs permitem acessos simutâneos por vários programas. Um exempo é o uso de BDs em comércio eetrónico (com transações via Web). 37

38 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQLITE SQLITE e Python Resoução de probema 38

39 Python + SQLite O Python tem integrado o sqite3 (desde a versão 2.5 do Python). Para manipuar bases de dados sqite3, deve-se usar a bibioteca sqite3, importando-a com o comando import sqite3 [as sq] Para aceder a uma base de dados existente, ou criar uma nova base de dados, com o nome nomebd, usa-se o método: Bd = sqite3.connect(nomebd, isoazon_eve = None ) O método devove um objeto (do epo sqite3.connec9on) usado depois para executar instruções na base de dados. Nota: O parâmetro isoa&on_eve = None garante que todas as aterações feitas na base de dados (por exempo com inserts) são imediatamente feitas, não havendo necessidade de ueizar cursores, ou fazer commits, para se executarem de facto essasaterações. 39

40 Python + SQLite Para executar uma operação de criação ou eiminação de tabeas ou registos, de uma base de dados representada peo cursor bd, usa-se o método execute res = bd.execute(instrução) O método retorna um objeto (do tipo cursor) que nos permite obterinformação sobre o resutado da operação. Por exempo, pode-se saber quantas inhas foram modificadas, acedendo à variáve interna do cursor retornado res.rowcount 40

41 Exempo: Python + SQLite Criação da base de dados bdu.bd, com uma tabea de Aunos. In : import sqite3 as sq In : bd = sq.connect('bdu.bd, isoation_eve = None) In : com = 'CREATE TABLE Cadeiras\...: ( codigo INTEGER, nome TEXT, setor VACHAR(3),\...: PRIMARY KEY(codigo));' In : res = bd.execute(com) Uma vez criadas tabeas na base de dados, podem serobedas as tabeas existentes na base de dados. ser inseridos / eiminados registos nas tabeas (com as instruções SQLvistasatrás). 41

42 Python + SQLite Exempo: Para se obterem as tabeas da base de dados pode usar-se uma seeção da (meta)tabea sqite_master. As tabeas podem ser posteriormente obedas anaisando os resutados obedos (método fetcha do cursor) In : com = 'SELECT name FROM sqite_master WHERE type="tabe"; In : res = bd.execute(com) In : tabeas = res.fetcha() In : tabeas Out: [( Cadeiras',)] 42

43 Uma vez criadas as tabeas, podem inserir-se registos Exempo: Python + SQLite Introdução de 2 aunos, introduzindo-se 2 aunos.... In : com = 'INSERT INTO Cadeiras VALUES (\...: 10432, "Dinamica dos Corpos Rigidos", "EC");' In : res = bd.execute(com) In : com = 'INSERT INTO Cadeiras VALUES (\...: 11147, "Informatica para Ciencias e Engenharias C", "INF"); ' In : res = bd.execute(com) In : res.rowcount Out: 1 43

44 Exempo: Python + SQLite Se se tentarem inserir registos com a mesma chave primária de outros existentes na base de dados, é detetado um erro e a execução do programa é abortada. Para evitar essa situação pode ser usado a instrução try. In : com = 'INSERT INTO Cadeiras VALUES (\...: 10432, "Dinamica dos Corpos Rigidos", "EC");' In : try:...: bd.execute(com)...: except sq.error as erro:...: print('erro: ', erro.args[0]) Out: Erro: UNIQUE constraint faied: Cadeiras.codigo Em gera, o tipo de erro na execução de uma instrução SQL pode serobtido pea inspeção da variáve sq.error 44

45 Python + SQLite Para o acesso a registos pode usar-se a instrução sq SELECT() que atuaiza o objeto cursor (epo sqite3.cursor) com os registos idos. Os registos podem seridos com os métodos fetcha() que devove uma sequênciade todos os tupos idos fetchone() que devove um tupo ido e que pode ser usado sequenciamente até aceder a todos os registos idos 45

46 Exempo: SQLite Acesso à base da base de dados bdu.bd, com cursor bd. In : com = SELECT * FROM Cadeiras;' In : res = bd.execute(com) In : records = res.fetcha() In : records Out: [(10432, 'Dinamica dos Corpos Rigidos', 'EC'), (11147, 'Informatica para Ciencias e Engenharias C', 'INF )] In : type(records) Out: ist In : res = bd.execute(com) In : rec = res.fetchone() Out: (10432, 'Dinamica dos Corpos Rigidos', 'EC ) In : rec = res.fetchone() Out: (11147, 'Informatica para Ciencias e Engenharias C', 'INF ) In : rec = res.fetchone() Out: 46

47 A partir de um objeto res (devovido por uma instrução SELECT e com tipo sqite3.cursor) podem ser obtidos os nomes dos seus campos com a instrução Exempo: Python + SQLite res.description[num][0] In : com = SELECT * FROM Cadeiras;' In : res = bd.execute(com) In : res.description[0][0] Out: 'código' In : res.description[1][0] Out: 'nome' In : res.description[2][0] Out: 'setor' In : res.description[3][0] IndexError: tupe index out of range 47

48 Python + SQLite Finamente, quando se finaizar a ueização da base de dados, ea deve ser fechada com o método.cose() Exempo: In : bd = sq.connect('bdu.bd )... In : bd.cose() 48

49 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQLITE SQLITE e Python Resoução de probema 49

50 Probema Exempo: Python + SQLite Foram registadas num ficheiro* todas as obras do conceho de Cascais concessionadas peas juntas de freguesia no ano de a) Pretende-se determinar quantas obras foram concessionadas nas várias freguesias do conceho b) Com base nessa informação, desenhar um histograma com o número de obras, discriminadas por freguesia. * htps://dados.gov.pt/en/datasets/obras-de-concessionarios/ 50

51 Exempo: Python + SQLite Probema Aternativo a) Pretende-se determinar quantas obras foram concessionadas nas várias freguesias do conceho, divididas em 3 categorias de acordo com a sua duração. Curta : menos de 2 dias Média: entre 3 e 10 dias Longa : mais de 10 dias 51

52 Exempo: Python + SQLite O ficheiro texto, com nome obras_cascais.csv, contém a informação sobre as várias obras em várias inhas, cada uma referente a uma obra, com os campos, separados por, <Promotor>,<Freguesia>,<Data Prevista de Início>,<Data Prevista de Fim>,<Número do Processo>,<Estado>,<Data de actuaização> Promotor Freguesia Data Prevista Data Prevista Número do de Início de Fim Processo Estado Data de actuaização - Águas de Ca Acabideche 04/01/ /01/2016 IVP/0478/15 Licenciado 14/12/ :12 LISBOAGÁS U.F. Cascais e Estori 02/05/ /05/2016 IVP/0160/16 Obra concuída 13/05/ :08 MEO U.F. Carcaveos e Parede 26/04/ /05/2016 IVP/0139/16 Licenciado 12/04/ :03 52

53 Exempo: Python + SQLite Mais especificamente, pretende-se a) Criar uma base de dados (BD) com uma tabea b) Inserir dados das obas concessionadas c) Queseonar a BD usando SQL d) Desenhar o histograma com os dados seecionados 53

54 Resoução Probema 1. Compreender totamente o probema. 2. Caracterizar o probema. Probema: Obras Concessionadas Entrada: Saída: (string) nomefichdados, (string) nomebasedados nenhuma. A base de dados com nome nomebasedados é criada e desenhado um histograma com as obras discriminadas pea sua duração e freguesia. 3. Generaizar o probema (sempre que for possíve). Poderíamos determinar as várias categorias de duação das obras, mas vamos assumir que as categorias sãofixas (curtas 54

55 Resoução Agoritmo [1] 4. Desenhar o agoritmo para resover o probema. a) Conceber o agoritmo, decompondo o probema em subprobemas. Neste caso, podemos ideneficar os seguintes subprobemas: 1. Criar a base de Dados 2. Queseonar a base de dados 3. Desenhar o histograma 55

56 b) Identificar, caracterizar e generaizar cada sub-probema. Probema: Entrada: Saída: Resoução Agoritmo [2] Criar a Base de Dados (string) nomefichdados. Não existe. É criada uma base de dados, com uma inha por obra, com campos <Processo>, <Promotor>, <Freguesia>, <Duração> Promotor Freguesia Data Prevista Data Prevista Número do de Início de Fim Processo Estado Data de actuaização - Águas de Ca Acabideche 04/01/ /01/2016 IVP/0478/15 Licenciado 14/12/ :12 LISBOAGÁS U.F. Cascais e Estori 02/05/ /05/2016 IVP/0160/16 Obra concuída 13/05/ :08 MEO U.F. Carcaveos e Parede 26/04/ /05/2016 IVP/0139/16 Licenciado 12/04/ :03 nº Processo Promotor Freguesia Duração IVP/0478/15 AdC - Águas de Cascais Acabideche 5 IVP/0160/16 LISBOAGÁS U.F. Cascais e Estori 1 IVP/0139/16 MEO U.F. Carcaveos e Parede 16 56

57 b) Ideneficar, caracterizar e generaizar cada sub-probema. Probema: Consutar a Base de Dados Entrada: Saída: Resoução Agoritmo [3] (string) nomebase de Dados. (dict) obras, um dicionário (de dicionários) com a informação recohida. nº Processo Promotor Freguesia Duração IVP/0478/15 AdC - Águas de Cascais Acabideche 5 IVP/0160/16 LISBOAGÁS U.F. Cascais e Estori 1 IVP/0139/16 MEO U.F. Carcaveos e Parede 16 { Acabideche : Nacabideche, UF Cascais Estori : Ncascais, UF Carcaveos Parede : Ncarcaveos, S. Domingos de Rana : Nsdomingos} Aternaeva: { Acabideche : { curtas : Xa, médias : Ya, ongas : Za}, UF Cascais Estori : { curtas : Xb, médias : Yb, ongas : Zb}, UF Carcaveos Parede : { curtas : Xc, médias : Yc, ongas : Zc}, S. Domingos de Rana : { curtas : Xd, médias : Yd, ongas : Zd}} 57

58 Resoução Agoritmo [4] b) Ideneficar, caracterizar e generaizar cada sub-probema. Probema: Desenhar Histograma Entrada: (dict) obras. Saída: Não existe. Apenas é desenhado um histograma. { Acabideche : Nacbideche, UF Cascais Estori : Ncascais, UF Carcaveos Parede : Ncarcaveos, S. Domingos de Rana : Nsdomingos} { Acabideche : { curtas : Xa, médias : Ya, ongas : Za}, UF Cascais Estori : { curtas : Xb, médias : Yb, ongas : Zb}, UF Carcaveos Parede : { curtas : Xc, médias : Yc, ongas : Zc}, S. Domingos de Rana : { curtas : Xd, médias : Yd, ongas : Zd}} 58

59 Resoução Agoritmo [5] 5. Para cada sub-probema, desenhar o agoritmo para o resover. Criação da Base de Dados: criabd( nomefichdados, nomebasedados ) eitura de ficheiro oca e criação da base de dados Consuta da Base de Dados : consutabd (nomebasedados) : consuta da base de dados e criação do dicionário Histograma: histograma ( nomedicionário) desenhodohistogramacorrespondente aodicionário 59

60 Resoução Programa [1] 6. Para cada sub-probema (começando peos mais simpes), impementar o respeevo agoritmo e testar o subprograma. Função: criabd(nomefichdados, NomeBaseDados) 1. Abrir ficheirode dados 2. Criar base de dados 3. Criar tabea obras com campos 4. Para cada inha do ficheiro de dados i. Criar os vaores dos campos ii. Inserir registo na tabea 5. Fechar a base de dados 6. Fechar o ficheiro de dados 60

61 Resoução Programa [2] 6. Para cada sub-probema (começando peos mais simpes), impementar o respetivo agoritmo e testar o subprograma. Função: criabd(nomefichdados, NomeBaseDados) 1. Abrir ficheirode dados 2. Criar base de dados 3. Criar tabea obras com campos 4. Para cada inha do ficheiro de dados i. Criar os vaores dos campos ii. Inserir registo na tabea 5. Fechar a base de dados 6. Fechar o ficheiro de dados 61

62 Resoução Função criabd [1] def criabd(nomefichdados, NomeBaseDados): """... """ bd = sq.connect(nomebasedados, isoation_eve = None) com = 'CREATE TABLE Obras\ ( processo TEXT,Promotor TEXT,Freguesia TEXT, \ Duracao INTEGER, PRIMARY KEY(processo)); res = bd.execute(com) fich= open(nomefichdados, 'r ) fich.readine() for ine in fich.readines(): fich.cose() bd.cose() 62

63 Resoução Função criabd [2] for ine in fich.readines(): inha = ine.spit(, ) processo = inha[4] promotor = inha[0] freguesia = inha[1] duração= cacua_duracao(inha[2], inha[3]) com = INSERT INTO Obras VALUES (processo, promotor, freguesia, duração); bd.execute(com) Promotor Freguesia Data Prevista Data Prevista Número do de Início de Fim Processo Estado Data de actuaização - Águas de Ca Acabideche 04/01/ /01/2016 IVP/0478/15 Licenciado 14/12/ :12 LISBOAGÁS U.F. Cascais e Estori 02/05/ /05/2016 IVP/0160/16 Obra concuída 13/05/ :08 MEO U.F. Carcaveos e Parede 26/04/ /05/2016 IVP/0139/16 Licenciado 12/04/ :03 nº Processo Promotor Freguesia Duração IVP/0478/15 AdC - Águas de Cascais Acabideche 5 IVP/0160/16 LISBOAGÁS U.F. Cascais e Estori 1 IVP/0139/16 MEO U.F. Carcaveos e Parede 16 63

64 Resoução Função criabd [3] def duracao(inicio, fim) dia_inicio = int(inicio[0:2]) mes_inicio = int(inicio[3:5]) dia_fina = int(fim[0:2]) mes_fina = int(inicio[3:5]) inicio= primeiro(mes_inicio)+dia_inicio -1; fina = primeiro(mes_fina)+ dia_fina -1; return fina-inicio+1 Data 04/01/ /05/ /04/2016 def primeiro(mes) if mes == 1 : return 1 eif mes == 2 : return 32 ese : return 335 primeiro dia do mês Janeiro 1 Fevereiro 32 Março 60 Abri 91 Maio 121 Junho 152 Juho 182 Agosto 213 Setembro 244 Outubro 274 Novembro 305 Dezembro

65 Resoução Programa [3] 6. Para cada sub-probema (começando peos mais simpes), impementar o respeevo agoritmo e testar o subprograma. Função: consutabd (nomebasedados) 1. Abrir base de dados 2. Ler as freguesias existentes 3. Criar dicionário vazio com obras por freguesia 4. Para cada inha do ficheiro de dados i. Verificar a que freguesia pertence a obra ii. Incrementar o correspondente vaor no dicionário 5. Fechar a base de dados 6. Retornar o dicionário 65

66 Resoução Função consutabd def consutabd(nomebasedados): """... """ bd = sq.connect(nomebasedados, isoation_eve = None) com = 'SELECT DISTINCT freguesia FROM Obras;' res = bd.execute(com).fetcha() freguesias = [f[0] for f in res] dados = {} for freguesia in freguesias: com = 'SELECT * FROM Obras WHERE freguesia = '\ + freguesia + '";' res = bd.execute(com).fetcha() n = en(res) dados.update({freguesia: n}) bd.cose() return dados 66

67 Resoução Programa [3] Nota Importante: O comando SQL onde se pretendem er as obras por freguesia deve ter a forma indicada no exempo abaixo SELECT * FROM Obras WHERE freguesia = "Acabideche"; em que o nome da freguesia é indicado entre aspas (uma string ). Para obter essa string a parer da string correspondente ªA freguesia faz-se pois a concatenação das strings incuindo as aspas (dentro de strings imitadas por picas). com = 'SELECT * FROM Obras WHERE freguesia = "' \ + freguesia + '";' 67

68 Resoução Programa [4] 6. Para cada sub-probema (começando peos mais simpes), impementar o respeevo agoritmo e testar o subprograma. Função: histograma (dados) 1. Ler as freguesias existentes no dicionário (eixo X) 2. Criar um vetor com as obras por freguesia (eixo Y) 3. Imprimir umhistograma com esse vetor 4. Competar o histograma (otuo, egenda,etc...) 5. Guardar o histograma numa figura 68

69 Resoução Função histograma [2] def histograma(dados): """... """ fregs = dados.keys() freguesias = [] n_obras = [] for freg in fregs: n_obras.append(dados[freg]) freguesias.append(freg[0:15]) pt.bar(freguesias, n_obras) pt.tite('obras Reaizadas nas Freguesias de Cascais') pt.yabe('duração das Obras') pt.xabe('freguesias') pt.savefig('histograma.png') 69

70 Resoução Função obras Finamente, a função obras junta as 3 funções desenvovidas anteriormente para resover o probema. def obras(nomefichdados, NomeBaseDados): """... """ criabd(nomefichdados, NomeBaseDados) dados = consutabd(nomebasedados) histograma(dados) Esta função e as suas sub-funções podem ser testadas com o ficheiro obras_cascais_2016.csv, em anexo. 70

71 Para Consutar SQL Muito fáci encontrar tutoriais na Web, mas normamente têm muito mais do que damos aqui. Exempo de dois sites que podem se úteis: « « 71

Informática para Ciências e Engenharias (B) 2015/16. Teórica 10

Informática para Ciências e Engenharias (B) 2015/16. Teórica 10 Informática para Ciências e Engenharias (B) 2015/16 Teórica 10 Na aua de hoje Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQL e MATLAB Um exempo prático Nota:

Leia mais

Informática para Ciências e Engenharias (B) 2016/17. Teórica 9

Informática para Ciências e Engenharias (B) 2016/17. Teórica 9 Informática para Ciências e Engenharias (B) 2016/17 Teórica 9 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQL e MATLAB Um exempo prático Nota: Aguns

Leia mais

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 8. Pedro Barahona 2016 / 17

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 8. Pedro Barahona 2016 / 17 Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civi) Aua 8 Pedro Barahona 2016 / 17 Sumário Introdução aos sistemas de bases de dados: Modeo reaciona SQL (Structured Query Language) SQL

Leia mais

Informática para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 10. Pedro Barahona 2018 / 19

Informática para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 10. Pedro Barahona 2018 / 19 Informática para as Ciências e Engenharias Versão : C (Engenharia Civi) Aua 10 Pedro Barahona 2018 / 19 Sumário Introdução aos sistemas de bases de dados: Interrogações mais compexas emsql. Simuação de

Leia mais

15 - Introdução às Bases de Dados

15 - Introdução às Bases de Dados ICE-B 15 - Introdução às Bases de Dados Ludwig Krippahl Bases de Dados Resumo Introdução aos sistemas de bases de dados: Modelo relacional SQL (Structured Query Language) Criar tabelas Inserir dados Consultar

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 5

Informática para Ciências e Engenharias (B) 2015/16. Teórica 5 Informática para Ciências e Engenharias (B) 2015/16 Teórica 5 Na aua de hoje Controo de execução cicos condicionais whie end Exempos raiz quadrada whie Histograma whie e matrizes fórmua química whie e

Leia mais

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 10. Pedro Barahona 2016 / 17

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 10. Pedro Barahona 2016 / 17 Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civi) Aua 10 Pedro Barahona 2016 / 17 Sumário Introdução aos sistemas de bases de dados: Interrogações mais compexas em SQL. Simuação de

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 9

Informática para Ciências e Engenharias (B) 2015/16. Teórica 9 Informática para Ciências e Engenharias (B) 2015/16 Teórica 9 Na aua de hoje Estruturas e vectores de estruturas. Cácuo da massa moecuar Cácuo da fracção de um resíduo em sequências de proteínas Estruturas

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 11

Informática para Ciências e Engenharias (B) 2015/16. Teórica 11 Informática para Ciências e Engenharias (B) 2015/16 Teórica 11 Na aua de hoje Sistemas de bases de dados: Interrogações mais compexas em SQL Envovendo várias tabeas Simuação de modeos contínuos: Integração

Leia mais

Informática para Ciências e Engenharias (B) 2016/17. Teórica 3

Informática para Ciências e Engenharias (B) 2016/17. Teórica 3 Informática para Ciências e Engenharias (B) 2016/17 Teórica 3 Na aua de hoje Vetores. Cicos FOR. Percursos em vetores. Exempos 22 Março 2017 Vetores; cicos FOR 2 Probema dos Contaminantes Para avaiar a

Leia mais

Informática para Ciências e Engenharias (B) 2016/17. Teórica 1

Informática para Ciências e Engenharias (B) 2016/17. Teórica 1 Informática para Ciências e Engenharias (B) 2016/17 Teórica 1 Informação Regência / Teóricas Pedro Barahona (pb@fct.un.pt) Auas Práticas Pedro Barahona (pb@fct.un.pt) Jorge Cruz (jcrc@fct.un.pt) Ludwig

Leia mais

2 o Teste de ICE-B, 6 de Junho de 2018 (Versão B)

2 o Teste de ICE-B, 6 de Junho de 2018 (Versão B) 2 o Teste de ICE-B, 6 de Junho de 2018 (Versão B) Três páginas com 7 perguntas mais duas folhas de resposta. Duração: 1 hora e 45 minutos Atenção: Preencha cuidadosamente cada folha de resposta, escrevendo

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 1

Informática para Ciências e Engenharias (B) 2015/16. Teórica 1 Informática para Ciências e Engenharias (B) 2015/16 Teórica 1 Informação Regência e Teóricas Pedro Barahona (pb@fct.un.pt) Outros docentes e mais informação na...... página de ICE-B: http://ssdi.di.fct.un.pt/ice/b

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 3

Informática para Ciências e Engenharias (B) 2015/16. Teórica 3 Informática para Ciências e Engenharias (B) 2015/16 Teórica 3 Na aua de hoje Cico for for end Vectores numéricos e strings sequências de números indexação de vectores Percursos em vectores Cico For Instrução

Leia mais

Importar e Exportar Dados

Importar e Exportar Dados Importar e Exportar Dados Administração de Base de Dados OBJECTIVOS: Definir comandos e formatos Definir restrições (constraints) DEFINIÇÃO DO ESQUEMA DA BASE DE DADOS O esquema da BD e composto pelas

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

Bases de Dados. DDL Data Definition Language

Bases de Dados. DDL Data Definition Language Bases de Dados DDL Data Definition Language SQL SQL = Structured Query Language Foi originalmente criada pela IBM nos anos 70 como parte de um protótipo de sistema relacional Posteriormente foi implementada

Leia mais

Informática para Ciências e Engenharias - 2º semestre 2018/2019

Informática para Ciências e Engenharias - 2º semestre 2018/2019 Informática para Ciências e Engenharias - 2º semestre 2018/2019 2º Teste, 8 de Junho de 2019, 1h:45m + 30m versão A ICE: ; Nome: ; Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade

Leia mais

Computação e Linguagem de Programação

Computação e Linguagem de Programação Computação e Linguagem de Programação Aua 5 parte 1 Professores Sandro Fonseca de Souza Dison de Jesus Damião 1 Sumário Bibiografia Sugerida Motivações em FAE Introdução à Programação Linguagem de Programação

Leia mais

Informática para Ciências e Engenharias 2013/14. Teórica 10

Informática para Ciências e Engenharias 2013/14. Teórica 10 Informática para Ciências e Engenharias 2013/14 Teórica 10 Na aula de hoje... Introdução aos sistemas de bases de dados: Modelo relacional SQL (Structured Query Language) SQL e MATLAB Um exemplo prático

Leia mais

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome> 1. Manuseio do banco de dados MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS As seguintes instruções manuseiam o banco de dados: cria o banco mostra os bancos

Leia mais

2 o Teste de ICE-B, 8 de Junho de 2019 (Versão B)

2 o Teste de ICE-B, 8 de Junho de 2019 (Versão B) 2 o Teste de ICE-B, 8 de Junho de 2019 (Versão B) Três páginas com 7 perguntas+tp2, três folhas de resposta. Duração total: 2 horas Atenção: Preencha cuidadosamente cada folha de resposta, escrevendo o

Leia mais

A linguagem SQL

A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

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

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 8

Informática para Ciências e Engenharias (B) 2015/16. Teórica 8 Informática para Ciências e Engenharias (B) 2015/16 Teórica 8 Na aua de hoje Organização de um disco. Sistema de ficheiros. Ficheiros de texto e binários. Operações sobre ficheiros de texto. Ficheiros

Leia mais

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes Flickr, shindotv/3835365695/ BASES DE DADOS Laboratórios de Informática 2014-2015 João Paulo Barraca, André Zúquete, Diogo Gomes Armazenamento de Informação Aplicações necessitam de armazenar informação

Leia mais

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

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados Mysql Quanto mais informações você busca, mais você evolui. Vitor Ramos SQL Structured Query Language - Linguagem de Consulta Estruturada Desenvolvida pela IBM, nos anos 70; Inicialmente chamada SEQUEL

Leia mais

Aula 06 Sistemas Embarcados LT38C

Aula 06 Sistemas Embarcados LT38C Aula 06 Sistemas Embarcados LT38C Prof. Lucas Ricken Garcia 2017/1 Introdução a Banco de Dados Coleção de dados relacionados. Fatos conhecidos que podem ser registrados e possuem significado implícito.

Leia mais

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

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010 Sumário SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 1 Introdução 2 Tabelas 3 Colunas 4 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP)

Leia mais

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

Introdução. Bases de Dados (CC2005) Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto (CC2005) Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Eduardo R. B. Marques DCC/FCUP parcialmente adaptado de slides por Fernando Silva e Ricardo Rocha Alguns

Leia mais

Informática I. Aula 8. Aula 8-25/09/2006 1

Informática I. Aula 8.   Aula 8-25/09/2006 1 Informática I Aula 8 http://www.ic.uff.br/~bianca/informatica1/ Aula 8-25/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Informática para Ciências e Engenharias - 2º semestre 2017/2018

Informática para Ciências e Engenharias - 2º semestre 2017/2018 Informática para Ciências e Engenharias - 2º semestre 2017/2018 2º Teste, 6 de Junho de 2018, 1h:45m versão B ICE: ; Nome: ; Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade

Leia mais

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

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 SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Informática para Ciências e Engenharias - 2º semestre 2017/2018

Informática para Ciências e Engenharias - 2º semestre 2017/2018 Informática para Ciências e Engenharias - 2º semestre 2017/2018 2º Teste, 6 de Junho de 2018, 1h:45m versão A ICE: ; Nome: ; Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo Departamento de Engenharia Informática 2013/2014 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos INSTRUÇÕES DE CONTROLO ÍNDICE. Nuno Mamede

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos INSTRUÇÕES DE CONTROLO ÍNDICE. Nuno Mamede PROGRAMAÇÃ COM OBJECTOS INSTRUÇÕES DE CONTROLO Programação com Objectos ÍNDICE Introdução aos objectos Poimorfismo Tudo é um objecto Interface e casses internas INSTRUÇÕES DE CONTROLO Guardar os objectos

Leia mais

Informática para as Ciências e Engenharias - 2º semestre 2015/2016

Informática para as Ciências e Engenharias - 2º semestre 2015/2016 Informática para as Ciências e Engenharias - 2º semestre 2015/2016 2º Teste, 6 de Junho de 2016, 2h versão A Nome: Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade do estudante;

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 2

Informática para Ciências e Engenharias (B) 2015/16. Teórica 2 Informática para Ciências e Engenharias (B) 2015/16 Teórica 2 Na aua de hoje Decomposição de probemas Abstracção, generaização e agoritmos Ficheiros e código fonte scripts, funções e como escrever código

Leia mais

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 Sumário Linguagem SQL 2 História Princípio dos

Leia mais

Informática para Ciências e Engenharias (B) 2016/17. Teórica 10

Informática para Ciências e Engenharias (B) 2016/17. Teórica 10 Informática para Ciências e Engenharias (B) 2016/17 Teórica 10 Sumário Introdução aos sistemas de bases de dados: Interrogações mais compexas em SQL. Simuação de modeos contínuos: Integração de equações

Leia mais

Informática para Ciências e Engenharias - 2º semestre 2016/2017

Informática para Ciências e Engenharias - 2º semestre 2016/2017 Informática para Ciências e Engenharias - 2º semestre 2016/2017 2º Teste, 5 de Junho de 2016, 1h:45m versão B ICE: ; Nome: ; Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade

Leia mais

Planificação Anual. Departamento Expressões e Tecnologias

Planificação Anual. Departamento Expressões e Tecnologias Modelo Dep-01 Planificação Anual Agrupamento de Escolas do Castêlo da Maia Departamento Expressões e Tecnologias Ano 12º Ano letivo 2013.2014 Disciplina Programação e Sistemas de Informação Turma G Professores:

Leia mais

Informática para as Ciências e Engenharias - 2º semestre 2015/2016

Informática para as Ciências e Engenharias - 2º semestre 2015/2016 Informática para as Ciências e Engenharias - 2º semestre 2015/2016 Exame de Recurso, 1 de Julho de 2016, 2h30m Nome: Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade do estudante;

Leia mais

Modelo Entidade-Relacionamento (E-R)

Modelo Entidade-Relacionamento (E-R) Modelo Entidade-Relacionamento (E-R) composto n lote n n n contrato_compra_venda n possui proprietário possui n associado cadastro n banco faz fronteira pertence n ruas n quadras n financiado empréstimo

Leia mais

Informática para Ciências e Engenharias - 2º semestre 2016/2017

Informática para Ciências e Engenharias - 2º semestre 2016/2017 Informática para Ciências e Engenharias - 2º semestre 2016/2017 2º Teste, 5 de Junho de 2016, 1h:45m versão A ICE: ; Nome: ; Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

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

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD. Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que

Leia mais

Análise matricial de estruturas não-lineares usando o Método de Newton.

Análise matricial de estruturas não-lineares usando o Método de Newton. Anáise matricia de estruturas não-ineares usando o Método de Newton. Exercício Computaciona - MAP3121 1 Primeiro probema 1.1 Descrição da estrutura não-inear Considere um sistema formado por três barras

Leia mais

ICE-B Sqlite e Python. Ludwig Krippahl

ICE-B Sqlite e Python. Ludwig Krippahl ICE-B 16 - Sqlite e Python Ludwig Krippahl Sqlite + Python Resumo Usar Sqlite a partir de Python Módulo sqlite3 Ligação à base de dados Cursor para executar comandos SQL Exemplo prático: criar uma tabela

Leia mais

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

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco

Leia mais

BANCO DE DADOS GERENCIAL 1 A U L A 2

BANCO DE DADOS GERENCIAL 1 A U L A 2 BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :

Leia mais

SQL: Vistas, Indices, Autorização, Restrições

SQL: Vistas, Indices, Autorização, Restrições SQL: Vistas, Indices, Autorização, Restrições Fernando Lobo Base de Dados, Universidade do Algarve 1 / 20 Vistas Uma vista (view em inglês) é uma tabela virtual. Não existe fisicamente na BD. É definida

Leia mais

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios! (Apresentação SQL Manager Lite for InterBase and Firebird) Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios! Ferramenta de alta performance para a otimização da administração de

Leia mais

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU Aula 6 BD1 Modelo Relacional Profa. Elaine Faria UFU - 2017 Introdução Modelo Relacional Proposto por Codd em 1970 Revolucionou a área de banco de dados É o modelo dominante base para os SGBDs líderes

Leia mais

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD? - ---@--- Conceitos O que é dado? O que é uma informação? O que é BD? O que é BD? O que é SGBD? O que é? O que é SGBD? Como se comunicar com o SGBD? 1 O que é? Onde Nasceu? Tipos de Bancos Relacionais

Leia mais

Informática para Ciências e Engenharias (B) 2016/17. Teórica 2

Informática para Ciências e Engenharias (B) 2016/17. Teórica 2 Informática para Ciências e Engenharias (B) 2016/17 Teórica 2 Na aua de hoje Decomposição de probemas Abstração, generaização e agoritmos Ficheiros e código fonte scripts, funções e como escrever código

Leia mais

Informática para Ciências e Engenharias (B) 2015/16. Teórica 4

Informática para Ciências e Engenharias (B) 2015/16. Teórica 4 Informática para Ciências e Engenharias (B) 2015/16 Teórica 4 Na aua de hoje Controo de execução condições if eseif ese end operadores reacionais e ógicos Exempos 1. fórmua resovente 2. cromatograma, GC

Leia mais

Exane de ICE-B, 26 de Junho de 2018 (Versão A)

Exane de ICE-B, 26 de Junho de 2018 (Versão A) Exane de ICE-B, 26 de Junho de 2018 (Versão A) Três páginas com 10 perguntas mais três folhas de resposta. Duração: 2 horas e 30 minutos Atenção: Preencha cuidadosamente cada folha de resposta. Pode usar

Leia mais

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

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de Introdução O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language). O padrão SQL define precisamente uma interface SQL para a

Leia mais

SQL Básica. Andre Noel

SQL Básica. Andre Noel SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou

Leia mais

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>; Views uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. sintaxe: CREATE VIEW AS ; 1 Exemplo Criar uma view que dá o nome, ano e duração

Leia mais

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g Pedro F. Carvalho OCP Oracle 2008.2 10g SQL Avançado Atualização e Inserção de Dados Comando INSERT Sumário Inclusão simples, inclusão de dados com SELECT Comando UPDATE Alteração simples, alteração usando

Leia mais

Revisão de Bancos de Dados

Revisão de Bancos de Dados Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)

Leia mais

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges BANCO DE DADOS II SQL Básico COTEMIG Gerson Borges gerson@cotemig.com.br Definição de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados é uma coleção de dados relacionados Representando algum

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2009/2010 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Licenciatura em Informática

Licenciatura em Informática Licenciatura em Informática Unidade Curricular Sistemas de Gestão de Bases de Dados Database Management Systems Objetivos -Administrar, criar e manter mecanismos de segurança em bases de dados SQL; -Criar,

Leia mais

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store

Leia mais

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S ) BANCO DE DADOS GERENCIAL 1 A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S ) VIEW é uma instrução SQL que retorna dados e é salva no banco de dados com um nome, ou seja, passa a ser um objeto

Leia mais

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP Banco de dados POO Márcio Delamaro 1/37 Objetivo Nesta aula vamos dar uma breve introdução do que é um Banco de dados relacional Como acessar um banco de dados usando Java 2/37 O que é Bancos de dados

Leia mais

Informática para Ciências e Engenharias 2012/13. Teórica 10

Informática para Ciências e Engenharias 2012/13. Teórica 10 Informática para Ciências e Engenharias 2012/13 Teórica 10 Na aula de hoje... Introdução aos sistemas de bases de dados (parte 2): Combinar MATLAB e SQL Um exemplo prático 2 MATLAB + SQL 3 MATLAB + SQL

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

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

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

FORMAÇÃO CONTINUADA EM MATEMÁTICA FUNDAÇÃO CECIERJ/CONSÓRCIO CEDERJ

FORMAÇÃO CONTINUADA EM MATEMÁTICA FUNDAÇÃO CECIERJ/CONSÓRCIO CEDERJ FORMAÇÃO CONTINUADA EM MATEMÁTICA FUNDAÇÃO CECIERJ/CONSÓRCIO CEDERJ Matemática 9º ano 1º bimestre / 2013 PLANO DE TRABALHO Semehança Fonte: http://pt.wikipedia.org/wiki/semehan%c3%a7a Tarefa 2 Cursista:

Leia mais

Marcos Alexandruk Marcos Alexandruk

Marcos Alexandruk Marcos Alexandruk Marcos Alexandruk m.alexandruk@gmail.com Apresentação disponível em: www.dba.net.br/mysql.pdf Parte I: Download e Instalação MySQL - Download www.mysql.com/downloads MySQL - Download MySQL - Download MySQL

Leia mais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013 BD I Prof. Lineu Mialaret Aula 25:

Leia mais

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos Modelo Relacional Uma base de dados é uma colecção de uma ou mais relações com nomes distintos Uma relação é uma tabela com linhas e colunas Esquema da Relação Descreve as colunas da tabela Especifica

Leia mais

Curso de Banco de Dados. Prof. Rone Ilídio

Curso de Banco de Dados. Prof. Rone Ilídio Curso de Banco de Dados Prof. Rone Ilídio Introdução BD 1 BD 2 SQL BD 3 Dados Aplicação Sistemas de Gerência de Banco de Dados -SGBD Introdução Aplicação que controla os dados Drives ODBC, BDE, ect SQL

Leia mais

BANCO DE DADOS PARA NINJAS

BANCO DE DADOS PARA NINJAS BANCO DE DADOS PARA NINJAS PARANGABA RONNISON REGES VIDAL Ceará, 25 de Outubro de 2016 ROTEIRO l Conhecimento Pra que usar? Ferramentas SGBD's Consultas (Jutsu) Linguagem de Consulta PRA QUE USAR? PRA

Leia mais

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

[versão para impressão] Link original:  comp=24763 Conhecendo o PL/SQL www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp? comp=24763 Conhecendo o PL/SQL Veja neste artigo o que é PL/SQL, quando utilizá-la e uma breve

Leia mais

Fundamentos de Banco de Dados Postgre com Sql

Fundamentos de Banco de Dados Postgre com Sql Fundamentos de Banco de Dados Postgre com Sql Prof. Luiz Claudio Ferreira de Souza Prof. Luiz Claudio F. de Souza 1 Obtenha os Slids no endereço www.luizclaudiofs.blogspot.com Prof. Luiz Claudio F. de

Leia mais

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Site: hjp://bdufam.wordpress.com Sumário

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Informática II Cap. 5-2 Bases de Dados - MsAccess

Informática II Cap. 5-2 Bases de Dados - MsAccess Cap. 5-2 Bases de Dados - MsAccess Filipe Caldeira - 2001 1 Introdução Porquê a utilização de Sistemas de Bases de Dados (SBD)? Armazenamento dos dados de uma forma consistente ( a informação não deve

Leia mais

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem

Leia mais