Claro, aqui está uma descrição de 3000 caracteres sobre programação e linguagens de programação web I e web II:
A programação é uma habilidade fundamental no mundo digital de hoje, permitindo que os desenvolvedores criem aplicativos, websites e sistemas complexos que impulsionam a nossa vida cotidiana. No contexto da web, existem duas categorias principais de linguagens de programação: Web I e Web II, cada uma desempenhando um papel único na criação e no funcionamento de websites dinâmicos e interativos.
As linguagens de programação Web I são essenciais para a construção dos componentes básicos de um website estático ou dinâmico. HTML (Hypertext Markup Language) é a espinha dorsal da Web I, fornecendo a estrutura fundamental para a apresentação de conteúdo na internet. Com HTML, os desenvolvedores podem criar páginas web, definindo a estrutura, o layout e os elementos de texto, imagem e mídia. Junto com HTML, o CSS (Cascading Style Sheets) é utilizado para estilizar e formatar o conteúdo, adicionando cores, fontes, espaçamentos e efeitos visuais para tornar o website mais atrativo e fácil de usar. Além disso, a Web I também engloba linguagens como JavaScript, que é responsável por adicionar interatividade e dinamismo às páginas web, permitindo a criação de elementos como animações, formulários interativos e funcionalidades de manipulação de dados em tempo real.
Por outro lado, as linguagens de programação Web II são voltadas para o desenvolvimento de aplicativos web mais avançados e robustos, que exigem interações mais complexas e processamento de dados em larga escala. Entre as principais linguagens de programação Web II está o JavaScript, que, apesar de ser parte da Web I, desempenha um papel crucial nesta categoria. Com o avanço das tecnologias web, o JavaScript evoluiu significativamente, possibilitando o desenvolvimento de aplicativos web de página única (SPA) e frameworks de frontend como AngularJS, ReactJS e VueJS, que fornecem ferramentas poderosas para a criação de interfaces de usuário altamente responsivas e dinâmicas.
Além do JavaScript, outras linguagens de programação Web II incluem PHP, Python, Ruby e Java, que são frequentemente utilizadas no desenvolvimento do lado do servidor (backend) de aplicativos web. Essas linguagens fornecem estruturas e bibliotecas robustas para a construção de sistemas escaláveis, seguros e eficientes, gerenciando operações como autenticação de usuários, acesso a banco de dados, manipulação de dados e processamento de solicitações HTTP.
Em resumo, as linguagens de programação Web I e Web II desempenham papéis complementares na criação e no funcionamento de websites e aplicativos web modernos. Enquanto as linguagens de Web I fornecem os blocos de construção básicos e a interatividade inicial, as linguagens de Web II capacitam os desenvolvedores a criar experiências web avançadas, escaláveis e altamente funcionais, impulsionando a inovação e a evolução contínua da web como plataforma de comunicação e
2. Prof. Michael Trindade da Silva
2023
Chaves e Índices
1 - Chave
Designa o item de busca, ou seja, um dado que será empregado nas
consultas à base de dados. É um conceito lógico da aplicação.
2 - Índice
É um recurso físico que visa otimizar a recuperação de uma informação
por um método de acesso. Seu objetivo principal está relacionado com a
performance de um sistema.
Uma chave pode ser utilizada como índice, mas um índice não é
necessariamente uma chave. A forma de criação do índice depende do
ambiente relacional.
2
Banco de Dados
Modelo de Dados Relacional
3. Prof. Michael Trindade da Silva
2023
Chaves
Chave Primária (primary key):
É o atributo, ou conjunto de atributos, de uma tabela que identifica
univocamente um registro (tupla/linha) no BD.
Uma chave primária não tem nenhuma ligação com o conceito de ordenação
e com o acesso à tabela, pois declarar um atributo como primário e acessar a
tabela por outro atributo servem para manter duas restrições de integridade
determinadas por Codd.
3
Banco de Dados
Modelo de Dados Relacional
4. Prof. Michael Trindade da Silva
2023
Chaves
Chave Secundária (secondary key):
Serve para definir uma segunda chave primária. Identifica sempre um item
de busca, pelo qual desejamos recuperar uma informação ou um conjunto de
informações.
É o atributo ou conjunto de atributos de uma tabela que identifica um
subconjunto de linhas (tuplas) que pode ter apenas uma linha (tupla).
No ambiente tradicional, só é possível acessar um registro se declarar que
aquele campo é chave. No ambiente relacional, uma tabela é acessível por
qualquer campo (atributo), independente de ser declarado como chave ou não.
Usamos normalmente a declaração de chave única (unique key) para agilizar
o acesso àquela tabela naquele atributo chave secundário.
4
Banco de Dados
Modelo de Dados Relacional
5. Prof. Michael Trindade da Silva
2023
Chaves
Chave Candidata ou Alternativa:
Uma tabela relacional pode possuir alternativas de identificador único, ou
seja, várias colunas ou concatenações diferentes de colunas podem ter essa
propriedade.
Esses identificadores são candidatos à chave primária. Como um e somente
um será escolhido como chave primária, o restante passa a ser considerado
chave alternativa (alternate Key). Podem ou não ser declarados como chave
única (unique key).
No SQL, a constraint unique key é uma regra implementada no SGBD que
garante que não haverá valores duplicados da mesma coluna ou em um
conjunto de colunas da mesma tabela.
5
Banco de Dados
Modelo de Dados Relacional
6. Prof. Michael Trindade da Silva
2023
Chaves
Chave Estrangeira (foreign key):
As chaves estrangeiras constituem um conceito de vital importância no
modelo relacional. São elos entre as tabelas.
Quando dizemos que duas tabelas estão relacionadas por atributos comuns,
provavelmente essa coluna em uma das tabelas é uma chave primária.
Na outra tabela, esse atributo vai caracterizar o que se denomina chave
estrangeira, propiciando, assim, uma ligação lógica (relacionamento) entre as
tabelas.
6
Banco de Dados
Modelo de Dados Relacional
7. Prof. Michael Trindade da Silva
2023
Regras de Integridade do MR
1 - Integridade de Identidade (ou entidade)
A chave primária não pode conter um valo nulo (NULL). O NULL não é o
valor 0 (zero) nem o caractere branco, é simplesmente a não existência
de conteúdo nesse campo.
2 - Integridade Referencial
Se uma determinada tabela A possui uma chave estrangeira, a qual é
chave primária em outra tabela B, então ela deve:
Ser igual a um valor de chave primária existente em B; ou
Ser nula (NULL)
7
Banco de Dados
Modelo de Dados Relacional
8. Prof. Michael Trindade da Silva
2023
Regras de Integridade do MR
Não pode existir na chave estrangeira um valor que não exista na tabela em
que ela é a chave primária, porém pode-se ter uma chave estrangeira sem valor,
ou seja, nula.
As regras de integridade do modelo relacional representam a garantia de que
as tabelas guardam as informações compatíveis.
São de extrema importância para a confiabilidade das informações contidas
no banco de dados.
Estas regras de integridade são implementadas por meio de Constraints na
linguagem de definição de dados.
8
Banco de Dados
Modelo de Dados Relacional
9. Prof. Michael Trindade da Silva
2023
Características do MR
1 – Uma tabela é acessível por qualquer campo (atributo), independente de
ele ser declarado como chave ou não.
2 – O relacionamento entre os conjuntos de dados (tabelas) não existe
fisicamente, pois é apenas lógico e representado por chaves estrangeiras.
3 – Utilização de linguagens autocontidas e não procedurais.
4 – Os ambientes relacionais possuem um otimizador estratégico para
escolher o melhor caminho para recuperação dos dados.
9
Banco de Dados
Modelo de Dados Relacional
10. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Nesta etapa, o desenvolvedor passará as visões do modelo conceitual para
o modelo lógico relacional.
Os dados são vistos como estruturas de dados voltadas para as
características do modelo lógico escolhido, visando a implementação do banco
de dados.
Regras de Conversão
Existem regras precisas que não dão margem a erros.
Uma vez projetado o ER, as tabelas que o representam num nível mais
baixo podem ser obtidas de forma clara.
É evidente que nesta passagem devem ser observadas as características
do SGBD que será utilizado, pois existem diferenças que podem auxiliar
ou dificultar algumas soluções propostas.
Alguns SGBDs necessitam de adaptações específicas.
10
Banco de Dados
Modelo de Dados Relacional
11. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Mapeamento das Entidades
Toda entidade torna-se uma tabela carregando todos os atributos
(definidos para a entidade).
Cada atributo vira um campo da tabela criada.
Cada uma das chaves gera “estruturas de acesso”.
A chave primária e as chaves candidatas são projetadas para não
permitirem ocorrências múltiplas nem admitem nulos.
As chaves das entidades fracas são formadas pelos atributos indicados,
precedidos pelos atributos que compõe a chave primária das entidades da qual
ela depende para sua existência.
11
Banco de Dados
Modelo de Dados Relacional
12. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Você vê um retângulo. O que fazer?
Transformá-lo em uma tabela; não há como errar.
Por que não há como errar?
Porque estamos falando de um modelo conceitual previamente
elaborado e validado junto com o usuário e os processos que vão trabalhar com
esses dados.
Exemplo:
Imagine um banco de dados com empregado e departamento. O usuário olha
para o banco e diz: quero um relatório que imprima o número de empregados de
cada departamento. Então você valida: esses dados respondem ao relatório que
o usuário quer? Sim, está perfeito; não, tenho de ajustar o banco de dados, pois
não vai responder a necessidade do usuário. A validação é sempre com o
usuário; ele confirma e vê se o banco responde.
12
Banco de Dados
Modelo de Dados Relacional
13. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Mapeamento dos Atributos
Os atributos das entidades e relacionamentos (que possuam atributos)
devem ser gerados na ordem que minimize o consumo de espaço de
armazenamento e torne mais eficiente a recuperação.
Devem ser exploradas todas as características de um SGBD em uso.
Para tanto, deve ser considerado se os campos têm ou não a
especificação de extensão em bytes, se existe localização no interior do
registro que propicie vantagens na recuperação e se existe compactação
de espaços não ocupados.
13
Banco de Dados
Modelo de Dados Relacional
14. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Mapeamento dos Relacionamentos
As alternativas possíveis são divididas em dois grandes grupos:
Navegação incorporada: trabalha diretamente com o conceito de chave
estrangeira.
Navegação disjunta: trabalha sem a modificação das definições dos
registros já existentes, criando registros (entidades) diferentes dos
existentes, que tem a finalidade de propiciar a navegação.
]
Nas modelagem de dados, vamos utilizar as alternativas do primeiro grupo,
por ser mais simples e de uso mais comum hoje em dia. A segunda
alternativa vamos tentar ver nos relacionamentos N:M.
14
Banco de Dados
Modelo de Dados Relacional
15. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – 1:N (envolvendo entidades distintas)
A entidade (tabela) cuja conectividade é N carrega o identificador da
entidade (tabela) cuja conectividade é 1 (chave estrangeira), e os atributos do
relacionamento.
Ou seja, quem está com o ‘N’ do lado carrega a chave do outro.
15
Banco de Dados
Modelo de Dados Relacional
16. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – 1:N (envolvendo entidades distintas)
16
Banco de Dados
Modelo de Dados Relacional
17. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – 1:N (envolvendo autorrelacionamento)
Deve-se incluir a chave primária da entidade na própria entidade como
chave estrangeira, gerando uma estrutura de acesso a partir dessa chave
estrangeira.
17
Banco de Dados
Modelo de Dados Relacional
18. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – 1:1 (envolvendo entidades distintas)
As entidades (tabelas) envolvidas nesse relacionamento carregam o
identificador da outra (uma ou outra ou ambas) conforme a conveniência do
projeto (de acordo com o acesso a essas tabelas).
18
Banco de Dados
Modelo de Dados Relacional
19. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – 1:1 (envolvendo entidades distintas)
19
Banco de Dados
Modelo de Dados Relacional
20. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – 1:1 (envolvendo autorrelacionamento)
Deve-se incluir a chave primária da entidade na própria entidade (chave
estrangeira) e gerar uma estrutura de acesso para ela.
20
Banco de Dados
Modelo de Dados Relacional
21. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – M:N (envolvendo autorrelacionamento e entidades distintas)
O relacionamento torna-se uma tabela que carrega os atributos (se houver)
e os identificadores das tabelas (entidades) que relaciona.
Este é o único caso em que um relacionamento torna-se uma tabela, pois
para a transformação no modelo relacional implementamos uma entidade
Associativa.
21
Banco de Dados
Modelo de Dados Relacional
22. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – M:N (envolvendo autorrelacionamento e entidades distintas)
22
Banco de Dados
Modelo de Dados Relacional
23. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento – M:N (envolvendo autorrelacionamento e entidades distintas)
23
Banco de Dados
Modelo de Dados Relacional
24. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
Relacionamento Múltiplo
O relacionamento é mapeado em uma tabela e são geradas tantas
estruturas de acesso quanto for o grau do relacionamento. A chave primária de
cada uma das entidades associadas gera uma estrutura de acesso. A chave
dessa nova tabela é a concatenação das chaves estrangeiras.
24
Banco de Dados
Modelo de Dados Relacional
25. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
As Generalizações
Exemplo: dado o conjunto ‘funcionário’, existe uma variação para ele. Há um
ponto básico para os funcionários que são engenheiros, pois têm informações
adicionais, enquanto para o vendedor existem outros dados que não seriam
semelhantes aos de engenheiro.
O artifício, pois não se pode ter campos com tamanho variável, é criar
subconjuntos para os casos em que as informações variam.
Um elemento de ‘funcionário’ pode ter um e somente um subconjunto.
As informações dos engenheiros serão completadas pelo subconjunto
‘engenheiro’.
25
Banco de Dados
Modelo de Dados Relacional
26. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
As Generalizações
Se não houvesse atributo diferente para os outros, todos os que não fossem
engenheiros ou vendedores só teriam seus dados no conjunto ‘funcionário’.
Não é possível para um empregado cuja função é engenheiro atuar como
vendedor, porque os elementos não podem se sobrepor.
Os subconjuntos tornam-se tabelas que carregam o identificador do
conjunto ao qual pertencem.
A garantia de não sobreposição dos subconjuntos é uma restrição de
integridade que deve ser expressa na linguagem de acesso ao banco de dados
(exemplo: SQL).
O conjunto ‘funcionário’ vira uma tabela (regra padrão) e os subconjuntos
serão transformados em outras tabelas, carregando a chave primária matrícula.
26
Banco de Dados
Modelo de Dados Relacional
27. Prof. Michael Trindade da Silva
2023
Derivação do ER para o MR
As Generalizações
27
Banco de Dados
Modelo de Dados Relacional
28. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
O mapeamento é feito em etapas para não perdermos nenhuma informação
e restrições já impostas no projeto.
É possível mapear em esquemas de tabelas os seguintes elementos do
diagrama entidade-relacionamento: entidades, atributos e relacionamentos.
Para fazermos essa migração, a indicação básica e determinante é a
cardinalidade prescrita.
O mapeamento será descrito em passos para compreendermos com mais
clareza o que é preciso ser feito.
28
Banco de Dados
Modelo de Dados Relacional
29. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
Entidades e Tabelas
1º. Passo: as entidades transformam em tabelas, e atributos em campos ou
colunas da tabela.
Temos a entidade Alunos e os atributos matrícula, nome e endereço.
O atributo matrícula é o atributo identificador no MER, e para o MR esse
atributo passa a ser a chave primária, trazendo consigo as mesmas
propriedades do atributo identificador.
A chave primária deve ser destacada, sublinhada, negritada ou com outra
forma de identificação.
29
Banco de Dados
Modelo de Dados Relacional
30. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
Entidades e Tabelas
1º. Passo: as entidades transformam em tabelas, e atributos em campos ou
colunas da tabela.
Temos o mapeamento da entidade Alunos para a tabela Alunos, em um
modelo relacional.
30
Banco de Dados
Modelo de Dados Relacional
31. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
Relacionamentos e a Cardinalidade
2º. Passo: mapear o relacionamento obedecendo a cardinalidade.
Temos um MER com apenas duas entidades e um relacionamento. O
principal indicativo para esse processo é a cardinalidade.
CASO 1: Relacionamento 1:1
31
Banco de Dados
Modelo de Dados Relacional
32. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 1: Relacionamento 1:1
Em primeiro lugar, passamos as entidades existentes para o formato de
tabela, com todos os seus atributos.
O mapeamento do relacionamento deve seguir a cardinalidade, e deve feita
com a chave primária.
32
Banco de Dados
Modelo de Dados Relacional
33. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 1: Relacionamento 1:1
Para entendermos melhor, o campo chave primária vai para a tabela
relacionada como chave estrangeira.
Esse nome é bem significativo, pois remete a ideia de um campo que não
pertence a tabela, que veio de fora, como é chave em sua tabela pertencente,
seu papel continua, mas como chave estrangeira.
Não pode esquecer que a chave primária permanece em sua tabela e passa
a ser um campo, chave estrangeira, em outra tabela, na tabela relacionada.
33
Banco de Dados
Modelo de Dados Relacional
34. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 1: Relacionamento 1:1
Para este relacionamento, é bem simples, pois podemos escolher a tabela
para a qual queremos enviar a chave primária, mas somente uma chave deve ir
para a outra tabela.
Temos a tabela Professores, então, podemos pegar a chave primária de
Professores (CPF) e levar para a tabela Disciplinas, em que será chave
estrangeira.
A chave estrangeira não precisa ser destacada, pode ser indicada como uma
linha reta ligando a chave primária à chave estrangeira.
34
Banco de Dados
Modelo de Dados Relacional
35. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 1: Relacionamento 1:1
Não podemos esquecer de observar a restrição imposta pela cardinalidade,
ou seja, “um professor pode ministrar somente uma disciplina e uma disciplina
pode ser ministrada por apenas um professor”.
35
Banco de Dados
Modelo de Dados Relacional
36. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 1: Relacionamento 1:1
Neste caso temos outra opção, podemos levar a chave primária de
Disciplinas para a tabela Professores.
É importante lembrar que, apesar de termos duas opções, devemos escolher
uma.
36
Banco de Dados
Modelo de Dados Relacional
37. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 1: Relacionamento 1:1
Uma diferença notável é que, na tabela Professores, o quarto registro (tupla)
está com o campo código em branco. É comum isso ocorrer, mesmo que se siga
outra opção.
Em um grande projeto é importante estudar qual seria a melhor opção, ou
seja, aquela que teria menos espaços em branco.
37
Banco de Dados
Modelo de Dados Relacional
38. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 2: Relacionamento 1:N
Temos um relacionamento em que o professor pode ministrar várias
disciplinas, mas uma disciplina só pode ser ministrada por um professor.
Nesse relacionamento, temos somente uma opção, e é sempre a regra.
38
Banco de Dados
Modelo de Dados Relacional
39. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 2: Relacionamento 1:N
A chave primária do lado 1 deve ser a chave estrangeira do lado N. Se o
modelo apresentar atributo do relacionamento, esse deve ser incluído na tabela
em que for a chave estrangeira, ou seja, onde a cardinalidade é N.
39
Banco de Dados
Modelo de Dados Relacional
A chave primária de
Professores (CPF)
deve ser a chave
estrangeira na tabela
Disciplinas.
40. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 2: Relacionamento 1:N
Observa-se que a configuração é a mesma do caso 1 na primeira opção, e
só será feita a distinção dessa restrição imposta com os valores na tabela.
Podemos verificar, por meio dos valores, que um professor pode ministrar mais
de uma disciplina.
40
Banco de Dados
Modelo de Dados Relacional
41. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 3: Relacionamento N:1
A regra a seguir é a mesma mostrada no caso 2. No relacionamento
mostrado, no MER em que um professor pode ministrar somente uma disciplina,
mas uma disciplina pode ser ministrada por mais de um professor.
A chave primária do lado 1 deve ser a chave estrangeira do lado N.
41
Banco de Dados
Modelo de Dados Relacional
42. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 3: Relacionamento N:1
Seguindo a regra, temos a chave primária de Disciplinas, que vai ser chave
estrangeira na tabela Professores, como está indicado. Esse mapeamento tem
como produto as mesmas tabelas do caso 1 em uma de suas opções.
As restrições só podem ser distinguíveis por meio dos valores, tornando
assim, visível a modelagem imposta pela cardinalidade.
42
Banco de Dados
Modelo de Dados Relacional
43. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 3: Relacionamento N:1
Na representação dos valores desse caso, uma disciplina pode ser
ministrada por mais de um professor, assim, a disciplina de artes tem como
professores a Ana e o Pedro. Já no sentido contrário, cada professor só pode
ministrar uma disciplina.
43
Banco de Dados
Modelo de Dados Relacional
44. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 4: Relacionamento N:N
Neste tipo de relacionamento, temos que o professor pode ministrar várias
disciplinas, e uma disciplina pode ser ministrada por mais de um professor.
44
Banco de Dados
Modelo de Dados Relacional
45. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 4: Relacionamento N:N
Para mapear esse caso, a regra difere dos demais. Uma tabela deve ser
criada, a tabela relacionamento.
Essa nova tabela deve conter a chave primária de Professores e a chave
primária de Disciplinas.
Se o relacionamento possuir atributo, ele será campo nessa nova tabela.
Ela terá duas chaves estrangeiras, mas, como ela surgiu a partir do
relacionamento, quem será a chave primária?
45
Banco de Dados
Modelo de Dados Relacional
46. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 4: Relacionamento N:N
Observe, que as duas chaves estrangeiras estão destacadas. Elas indicam
uma chave primária composta.
Essa chave é formada pelas duas chaves estrangeiras, e cada campo
isolado continua sendo chave estrangeira cuja união com a outra forma a chave
primária.
46
Banco de Dados
Modelo de Dados Relacional
47. Prof. Michael Trindade da Silva
2023
Mapeamento MER MR
CASO 4: Relacionamento N:N
Nesta cardinalidade, é um caso genérico, sem restrições, pois um professor
pode ministrar várias disciplinas e uma disciplina pode ser ministrada por mais
de um professor.
47
Banco de Dados
Modelo de Dados Relacional