Você está na página 1de 34

Bases de Dados

Databases
Conceitos e tecnologia
Concepts and technology

Nuno Escudeiro – nfe@isep.ipp.pt


Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Programa
Course content
1. Conceitos Gerais de Base de Dados 1. Database Concepts
• tecnologia vs propósito • technology vs purpose
2. Modelação de Dados 2. Data Modeling
• processo geral • general process
• caso particular do modelo relacional • particular case od relational model
3. Definição e Manipulação de Dados 3. Definition and Manipulation of Data
• SQL – Structured Query Language • SQL – Structured Query Language
4. Transações 4. Transactions
• conceito de transação em bases de dados • database transaction concept
• acesso concorrente a dados • data concurrency
5. Programação PL/SQL 5. PL/SQL Programming
• estruturais (tabela, índice, ...) • structural (table, index, ...)
• comportamentais (triggers, stored procedures, • behavioral (triggers, stored procedures,
functions, ...) functions, ...)
• dicionário de dados • data dictionary
Modelo Pedagógico
Pedagogical Model
• Modelo Pedagógico • Pedagogical Model
• Collaborative Online International Learning • Collaborative Online International Learning
• Disciplinas de BD do ISEP (Portugal), Hellenic • DB courses from ISEP (Portugal), Hellenic Mediterraneum
Mediterraneum Univerity (Grécia), University of Siegen Univerity (Greece), University of Siegen (Germany),
(Alemanha), University of Maribor (Eslovénia) University of Maribor (Slovenia)
• Formato • Format
• Algumas aulas teóricas lecionadas online por docentes das • Some theoretical lectures are taught online by professors
universidades parceiras para todos os estudantes from partner universities for all the students
• Algumas aulas PL são realizadas em modo híbrido • Some lab classes occur in hybrid mode () with international
(presencial e online) por equipas internacionais (DB Escape teams of students (DB Escape Room)
Room)
• Vantagens para estudantes
• Advantages for students
• Gain intercultural awareness and understanding
• Promover o desenvolvimento da perceção intercultural
• Dynamic and inexpensive curricular internationalization
• Estimular uma internacionalização curricular dinâmica, de
baixo custo e verde • Learn about databases from another perspective
• Discutir tópicos de bases de dados sob diferentes • Gain digital literacy skills and be better prepared to work in
perspetivas virtual teams
• Potenciar o desenvolvimento de competências de literacia • Enhance communication skills in international settings
digital e trabalho de equipa em ambiente virtual
• Fomentar o desenvolvimento de competências de
comunicção em ambiente internatcional
Planificação
Planning
Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Objetivos de Aprendizagem
Learning Outcomes
• CO1. Distinguir entre diferentes tecnologias de base • CO1. Distinguish between different database (DB)
de dados (BD) e a sua aplicabilidade technologies and their applicability
• CO2. Desenhar BD relacionais aplicando um • CO2. Design relational BD following a systematic
processo sistemático process
• CO3. Aplicar SQL para criar e gerir uma BD, • CO3. Apply SQL to create and manage a DB,
desenvolver e modificar scripts develop and modify scripts
• CO4. Construir, modificar e explicar queries para • CO4. Build, modify and explain queries for
consulta a uma BD querying a DB
• C05. Programar funções, procedimentos e triggers • C05. Program functions, procedures and triggers
para interação com o SGBD
to interact with the DBMS
• CO6. Explicar a racionalidade dos processos
transacionais e descrever os conceitos relacionados
• CO6. Explain the rationality of transactional
processes and describe related concepts
• CO7. Criar uma BD integrada num projecto em
equipa com base em requisitos funcionais e • CO7. Create an integrated DB in a team project
restrições based on functional requirements and constraints
Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Avaliação
Assessment
CF = M1*0.15 + M2*0.15 + M3*0.2 + M4*0.1 + FC = M1*0.15 + M2*0.15 + M3*0.2 + M4*0.1 +
EG*0.4 EG*0.4

Avaliação não repetível durante o período letivo Non-repeatable assessment during the school term
• M1 – Trabalho prático, Modelação de dados • M1 – Practical work, data modeling
• M2 – Trabalho prático, SQL • M2 – Practical work, SQL
• M3 – Trabalho prático, PL/SQL, apresentação final • M3 – Practical work, PL/SQL, final presentation
• M4 - Avaliação contínua analisada durante as aulas • M4 - Continuous assessment analyzed during classes
• EG – Exame global • EG - Global exam

• A média dos momentos não repetíveis (M1 a M4) • The average of non-repeatable moments (M1 to
numa escla de 0-20, ou seja, (M1*0.15 + M2*0.15 + M4) in a 0-20 scale, that is, (M1*0.15 + M2*0.15 +
M3*0.2 + M4*0.1)/0.6, tem nota mínima de 7.0 M3*0.2 + M4*0.1)/0.6, has a minimum score of 7.0
valores • The global exam has a minimum score of 7.0
• O exame golbal tem nota mínima de 7.0 valores
Avaliação
Assessment
Elementos de avaliação: Assessment elements:
• Trabalhos Práticos realizados parcialmente nas aulas • Practical assignments carried out partially in PL
PL, algumas das quais dedicadas ao Projeto classes, some of them dedicated to the Integrator
Integrador, em grupos de quatro estudantes, com Project, in a group of four students, with two
dois momento de avaliação intermédios (M1 e M2) e intermediate evaluation moments (M1 and M2) and
apresentação final (M3) final presentation (M3)

• Avaliação Contínua (M4) analisada durante as aulas, • Continuous Assessment (M4) analyzed during the
que reflete o envolvimento dos estudantes nas classes which reflects the involvement of students in
atividades realizadas nas aulas e fora das aulas, a sua activities carried out in class and outside of classes,
atitude e o empenho demonstrado nas atividades their attitude and commitment shown in preparatory
preparatórias das aulas, o desempenho dos activities of classes, student performance in the
estudantes nas sessões dedicadas à resolução de sessions dedicated to solving exercises, to the
exercícios, à discussão de casos de estudo discussion of case studies

• Exame global final (EG) • Final global exam (GE)


Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de • Data and Information Systems


Informação • Database Technology
• Tecnologia de Base de Dados • Introduction to Data Modeling
• Introdução à Modelação de
Dados
Dados e Sistemas de Informação
Data and Information Systems
• Sistema de Informação é um conceito lato que • Information System is a broad concept that
inclui, ou pode incluir, hardware, software, bases de includes, or may include, hardware, software,
dados, recursos informacionais e organizacionais databases, informational and organizational
• Um Sistema de informação é uma solução resources
integradora dos vários recursos necessários para • An Information System is a solution that integrates
gerir e operar uma organização the various resources needed to manage and
• A necessidade de persistir dados surge em Sistemas operate an organization
de Informação e em muitos outros contextos como, • The need to persist data arises in Information
por exemplo: computação móvel, sistemas de Systems and in many other contexts, such as:
tempo real, IA, aprendizagem máquina, jogos, mobile computing, real-time systems, AI, machine
robótica, indústria automóvel, web, etc learning, games, robotics, automotive industry,
• As tecnologias e as soluções de persistência de web, etc.
dados a implementar são condicionadas de várias • The technologies and data persistence solutions to
formas: disponibilidade, integridade, be implemented are conditioned in several ways:
confidencialidade, criticidade, …
availability, integrity, confidentiality, criticality,
Modelação de Dados
Data Modeling
• Universo de discurso (UoD), domínio • Universe of Discourse, UoD, domain
• Conjunto relevante das entidades do ponto de • Relevant set of entities from the "business"
vista do “negócio” point of view
• … e dos atributos/propriedades que as • … and the attributes/properties that
descrevem/caracterizam… describe/characterize them…

• Modelo • Model
• Um modelo é uma abstração, uma representação • A model is an abstraction, a representation of
do mundo real que abstrai/esquece o que não é the real world that abstracts/forgets what is not
relevante para o problema em estudo relevant to the problem under study
• Um modelo deve focar-se exclusivamente no que • A model should focus exclusively on what's
é importante, naquilo que acrescenta valor e important, what adds value and nothing else…
nada mais …
• … but you cannot omit any details whose
• … mas não pode omitir nenhum detalhe cuja
absence might compromises the purpose of the
ausência comprometa o propósito do sistema
system
Modelação de Dados
Data Modeling
• Objetivo e funcionalidade • Purpose and functionality
Um modelo de dados deve A data model must
a) dar resposta aos objetivos que se a) respond to the goals you intend to
pretende atingir com o sistema achieve with the system
b) permitir a implementação plena da b) allow the full implementation of
funcionalidade requerida do ponto the required functionality from
de vista do problema/negócio e the point of view of the
c) cumprir as especificações da problem/business and
solução do ponto de vista c) meet the solution's specifications
tecnológico from a technological point of view
www.menti.com
Dados e Sistemas de Informação 5560 4124
Data and Information Systems
Qual é o melhor modelo de uma cadeira?
• O melhor modelo… • The
Which one is the best model of a best
chair?model…

A B C

85
Dados e Sistemas de Informação
Data and Information Systems
• O melhor modelo… • The best model…
• … é o modelo mais simples que • … is the simplest model that can
consegue assegurar a ensure the full implementation of
implementação das especificações the specifications
na sua plenitude • In order to know if a model is good
• Para saber se um modelo é bom or bad, it is necessary to know for
ou mau é necessário saber para what purpose it will be used; what
que efeito será utilizado; o que se is it intended for; what goals
pretende fazer com o modelo; a should it respond to; what
que objetivos deve responder; que specifications must be met; what
especificações deve respeitar; que use will it have
utilidade terá
CONCEITOS

Conceitos fundamentais, terminologia


• [Ficheiros, Campos, Registos], [Tabelas, Colunas, Linhas], [Relação,
Atributos, Tuplos]
• Entidades e relacionamentos, ER – Entity-Relationship
• Modelo relacional de dados
• Esquema (Schema) de uma base de dados
• Chave primária, chave estrangeira, chaves candidatas
• Aridade: nº de atributos que descrevem uma relação
• Cardinalidade: nº de tuplos de uma relação.
CONCEITOS

Conceitos fundamentais, terminologia


Funcionalidade de um SGBD
• Criar, apagar, gerir bases de dados
• Gestão de utilizadores: atribuição e inibição de permissões,
• Segurança: prevenir acessos não autorizados, pwd, permissões e
níveis de acesso
• Concorrência e partilha: multi-utilizador, acessos simultâneos de
várias origens (programas/API, utilizadores/aplicações, consola SQL,
cron)
• Backups e recuperação de falhas
• Executar scripts SQL: definição de estruturas, manipulação de dados.
Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Tecnologia de Base de Dados (BD) e Aplicações
Database (DB) Technology and Applications
• Adequação Tecnologia/Propósito • Matching Technology/Purpose
• Existem vários tipos/tecnologias de BD • There are several types/technologies of DB
• Cada uma com as suas particularidades que são mais indicadas • Each one with its particularities that are best suited for certain types
para determinados tipos de processamento, objetivos e of processing, objectives and requirements/needs
exigências/necessidades • One does not opt for a BD technology without first analyzing these
• Dependendo do tipo, estrutura, modelo conceptual de dados, conditions and the available resources
recursos disponíveis para a persistência e uso esperado, diferentes • Depending on the type, structure, data model, data store, and
tecnologias serõa mais adequadas intended use-case of your data, different systems are likely to be
• Não se opta por uma tecnologia de BD sem primeiro analisar essas better suited to your needs
condicionantes e os recursos disponíveis • One does not opt for a DB technology without first analyzing these
conditions and the available resources
• Tecnologias/Tipos BD:
• Technology/Types of DB:
• Relacional (Oracle, MySQL)
• Relational (Oracle, MySQL)
• Multidmensional (Dataself Analytics, SimbaProvider OLAP)
• Multidmensional (Dataself Analytics, SimbaProvider OLAP)
• Orientada a Objetos (Objectivity/DB, ObjectStore)
• Object Oriented (Objectivity/DB, ObjectStore)
• Search engine (Elasticsearch, Solr)
• Search engine (Elasticsearch, Solr)
• Spatial (PostGIS, SpatiaLite) • Spatial (PostGIS, SpatiaLite)
• XML (eXist-db, Sedna) • XML (eXist-db, Sedna)
• NoSQL (MongoDB, Amazon DynamoDB) • NoSQL (MongoDB, Amazon DynamoDB)
• Wide Column (Cassandra, HBase) • Wide Column (Cassandra, HBase)
• Graph (Neo4j, InfiniteGraph) • Graph (Neo4j, InfiniteGraph)
Tecnologia de Base de Dados (BD) e Aplicações
Database (DB) Technology and Applications
• Vantagens relacional vs não-relacional • Advantages relational vs non-relational
• Tecnologia madura e com bom suporte documental • Mature technologies, well-documented
• A cargo de empresas bem estabelecidas no mercado • Supported by established corporations
• Standards SQL estão bem definidos e aceites globalmente • SQL standards are well-defined and commonly accepted
• Existe uma base de recrutamento extensa de especialistas em • A large pool of qualified developers have experience with SQL
SQL e SGBDR and RDBMS
• Todos os SGBDR garantem transações ACID (Atomicidade, • All RDBMS are ACID-compliant (Atomicity, Consistency,
Consistência, Isolamento, Durabilidade) Isolation, and Durability)

• Desvantagens • Disadvantages
• RDBMS don’t work well with unstructured or semi-structured
• Dificuldades no tratamento de dados não-estruturados
data, due to schema and type constraints
devido a restrições ao nível do schema e tipos de dados
• Complex datasets or those containing variable-length records
• Dificuldade no tratamento de dados complexos ou dinâmicos are generally difficult to handle
• Não existe uma correspondência direta entre um • Tables may not necessarily map one-to-one with an object or
objeto/classe e uma tabela class representing the same data
• A migração de um SGBDR para outro exige normalmente • When migrating one RDBMS to another, schemas and types
igualdade entre esquemas e tipos na origem e destino must generally be identical between source and destination
(schema constraint) tables for migration to work (schema constraint)
Tecnologia de Base de Dados (BD) e Aplicações
Database (DB) Technology and Applications
• Vantagens não-relacional vs relacional • Advantages non-relational vs relational
• Schema-free data models are more flexible • Schema-free data models are more flexible
and easier to administer and easier to administer
• NoSQL databases are generally more • NoSQL databases are generally more
horizontally scalable and fault-tolerant horizontally scalable and fault-tolerant
• Data can easily be distributed across different • Data can easily be distributed across different
nodes nodes

• Desvantagens • Disadvantages
• NoSQL databases are generally less widely • NoSQL databases are generally less widely
adopted and mature than RDBMS solutions; adopted and mature than RDBMS solutions;
specific expertise is often required specific expertise is often required
• There are a range of formats and constraints • There are a range of formats and constraints
specific to each database type specific to each database type
Tecnologia de Base de Dados (BD) e Aplicações
Database (DB) Technology and Applications
• Que base de dados devo utilizar? • Which technology should I use?
• Se a principal preocupação é garantir transações ACID • If ACID (Atomicity, Consistency, Isolation and Durability)
(Atomicity, Consistency, Isolation and Durability) considerar compliance is your first priority, consider using Relational
Bases de Dados Relacionais Databases
• Se é necessário utilizar dados agregados e disponibilizar • If you need aggregated data and provide key performance
indicadores de performance, processamento analítico, indicators, analytic processing, business intelligence,
NoSQL
business intelligence, dashboards, processamento sobre dashboards, data warehouse processing consider using
data warehouses , considerar Bases de Dados Multidimensional Databases
Multidimensionais • If your input data is particularly heterogeneous, semi-
• Se os dados são heterogéneos, semi-estruturados, com structured, having several non-textual datatypes and dynamic
vários atributos não-textuais e dinâmicos (que mudam ao (evolving over time), consider using NoSQL or XML Databases
longo do tempo), considerar Bases de Dados NoSQL ou XML • If your goal is information retrieval consider Search Engine
• Se o objetivo é a recuperação de informação, considerer Databases
Bases de Dados Search Engine • If your data requires managing structured data that is
• Se os conceitos a representar são estrurados mas requerem designed to scale to a very large size, petabytes of data across
números muito elevados de propriedades/características thousands of commodity servers, consider using Wide
(105, 106), considerar Bases de Dados Wide Column Column Databases
• Para soluções GIS e dados geo-referenciados, considerar • If you need GIS features and geo-referential data, consider
Bases de Dados Spacial. using Spacial Databases.
https://www.iseg.ulisboa.pt/aquila/getFile.do?fileId=8207&method=getFile

Databases ranking: https://db-engines.com/en/ranking


Sumário
Outline
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Introdução à Modelação de Dados
Introduction to Data Modeling
• Processo de modelação de dados • Data Modeling Process
• A complexidade do • The complexity of the
problema/domínio determina a problem/domain determines the
complexidade do processo complexity of the process
• Problemas simples resolvem-se com • Simple problems are solved with
técnicas simples simple techniques
• Problemas complexos resolvem-se • Complex problems are solved with
com técnicas complexas complex techniques
• Uma técnica comum em Engenharia • A common technique in Engineering
é a decomposição de problemas is the decomposition of complex
complexos em sub-problemas mais problems into simpler sub-problems
simples que se resolvem de forma that are solved in an iterative and
iterativa e complementar complementary way
Introdução à Modelação de Dados
Introduction to Data Modeling
• Base de dados para as chaves do • Base de dados para as chaves do
totoloto Simples, não totoloto Simple, does
requer
Chave(semana, ano,nenhum
sorteio, num1, num2, Key(week, year,not require
round, a
num1, num2, num3,
num3, num4, num5, num6, numSorte)
processo num4, num5, num6,complex
luckyNum)
procedure
elaborado

• Base de dados para a Gestão do • Base de dados para a Gestão do


ISEP ISEP
Complexo, Complex,
Estudantes, Professores, Salas, Horários, Students, Professors, Classrooms,
requer requires a
Exames, Edifícios, … Timetables, Exams, Buildings, …
processo systematic
sistemático process
Introdução à Modelação de Dados
Introduction to Data Modeling
• Processo sistemático de • Processo sistemático de
modelação de dados modelação de dados
1. Nível Conceptual 1. Conceptual level
• Conceitos/Entidades do domínio, UoD • Domain concepts/entities, UoD
• ER Entidade-Relacionamento • ER Entity-Relationship
2. Nível Lógico 2. Logical level
• Tecnologia de base de dados • Database technology
• Esquema relacional (notação gráfica • Relacional Schema (graphical or
ou textual) textual notation)
3. Nível Físico 3. Physical level
• SGBD • SGBD
• Script para criação da BD • Script to create the DB
Processo de Modelação de Dados
Data Modeling Process

CONCEPTUAL Student Enrolled Degree

Tecnologia BD/ DB Technology


Enrolled Degree
Student student
identifier
LÓGICO number 1 N degree N 1
name
name enrollDt
vacancies
avgGrade

SGBD/ DBMS
create table student(number char(10) primary key, name varchar(100) not null);
create table degree(identifier char(5) primary key, name varchar(100) not null, vacancies integer);
create table enrolled(student char(10), degree char(5), enrollmentDate date not null, averageGrade
FÍSICO decimal(3,1), constraint pk_enrolled primary key(student, degree));
alter table enrolled add constraint fk_student foreign key (student) references student(number);
alter table enrolled add constraint fk_degree foreign key (degree) references degree(identifier);
Resumo
Wrap up
• Programa e planificação • Course syllabus and planning
• Objetivos de aprendizagem • Learning outcomes
• Avaliação • Assessment

• Dados e Sistemas de Informação • Data and Information Systems


• Tecnologia de Base de Dados • Database Technology
• Introdução à Modelação de • Introduction to Data Modeling
Dados
Avaliação da aula
Lecture assessment

Você também pode gostar