This commit is contained in:
Akiovel
2025-11-03 20:15:15 -03:00
commit 572e57abe5
23 changed files with 1562 additions and 0 deletions

237
CodeWindows/testebiblioteca.py Executable file
View File

@@ -0,0 +1,237 @@
print(" ")
print(" ")
print(" BIBLIOTECA")
print("Para acessar o livro que queira ler, digite um comando de ação")
print(" ")
print("Livro: Banco de Dados. Comando: BDD")
print(" ")
print("Livro: Curso de Eletrônica. Comando: CDE")
print(" ")
L1 = " Banco de dados"
Prefacio = """>Prefácio da quarta edição
A razão de ser do novo capítulo agregado nesta quarta edição justifica-se, como sempre pediram os leitores, como o que
faltava para completar o conhecimento e como implementar os bancos de dados nas empresas.
Conforme vão sendo criadas aplicações corporativas, criam-se também grupos de informações necessárias a cada área de
negócio, bem como outros modelos paralelos são criados a partir do surgimento das técnicas de Data Warehouse.
Independentemente do estilo da empresa, as mudanças no contexto de negócio surgem de forma constante e muitas vezes sem
previsibilidade. Mesmo assim, tais mudanças são conduzidas nas áreas de Tecnologia da Informação (TI) das corporações,
de modo a satisfazer as necessidades do negócio a partir da construção ou da manutenção das aplicações.
A Administração de Dados é responsável por desenvolver e gerenciar de modo centralizado as estratégias, os procedimentos
e as práticas para o processo de gerência dos recursos de dados e aplicativos, incluindo planos para sua definição,
padronização, organização, proteção e utilização. Segundo o Data Management Body of Knowledge (DMBOK - em português,
Corpo de Conhecimento em Gerenciamento de Dados), a Administração de Dados, conhecida como Desenvolvimento de Dados,
visa projetar, implementar e manter soluções para atender às necessidades de dados da organização.
Com o Capítulo 15, realizamos o fechamento do contexto de projeto e implementação de bancos de dados, com a apresentação
da última atividade do ciclo de desenvolvimento de bancos de dados, que visa garantir a integridade corporativa e manter
a consistência dos dados de uma organização.
A Administração de Dados, por vezes implantada nas empresas de maneira centralizada, deve prezar, além de garantir o uso
de padrões na modelagem dos sistemas, pela aderência dos modelos de dados das aplicações com o modelo de dados
corporativo, que rege e disponibiliza as principais fontes de dados para a implementação e a integração das aplicações da
corporação. Essa responsabilidade deve ser aplicada em todas as frentes de desenvolvimento, o que muitas vezes afeta o
planejamento das entregas de manutenção dos modelos e faz com que isso se torne uma tarefa extremamente crítica e comple-
xa de ser gerenciada. Essa complexdade torna as liberações dos artefatos de manipulação dos objetos de banco de dados
uma arte no planejamento e no controle das versões dos modelos X entregas das aplicações.
Além de garantir que as mudanças nas aplicações sejam versionadas e atendam às necessidades das entregas de novos proje-
tos, a equipe de administradores de dados tende a se situar na empresa de maneira centralizada, pois, sem essa centra-
lização e sem uma governança adequada, os projetos e as manutenções de sustentação das aplicações incorrem sérios riscos
de conflitos nas versões.
Na condução do gerenciamento de desenvolvimento de sistemas que prezam pela centralização de administração de dados, o im-
portante é o bom senso no planejamento das entregas de projetos com amnutenções de sistemas que afetem as estruturas de
base de dados. Esse bom senso é adquirido ao se envolver constantemente o Administrador de Dados no planejamento e na exe-
cução dos processos de desenvolvimento das aplicações.
--->
Esperamos que o capítulo novo e complementar aumente ainda mais a capacitação do nosso leitor em análise, projeto e imple-
mentações de banco de dados e suas respoectivas aplicações sistêmicas, pois aqui apresentaremos os papéis de cada pro-
fissional, as técnicas utilizadas na gestão de modelos de dados (banco de dados) e como funciona a gestão de dados pelos
Administratores de Dados (ADs), distinguindo-se as atividades destes das atividades dos Administradores de Banco de Dados
(DBAs), funções diferentes, com responsabilidades diferentes, muitas vezes confundidads como sendo uma só.
O Autor --->
"""
cap1 = """ >=Projeto de Banco de Dados<=
> Durante muito tempo, criou-se a ideia de que projetar bancos de dados era uma disciplina com identidade própria, uma
atividade específica e, até certo ponto, isolada no ciclo de vida de um sistema, que tinha existência própria e podia
ser realizada a partir de primitivas e conceitos exclusivos da técnica de modelagem de dados.
Com a evolução das tecnologias de desenvolvimento de aplicações, novas linguagens e, principalmente com o advento da
orientação a objetos (OO), não mais restrita ao ambiente de programação, mas extensiva às metodologias de análise de
sistemas, o trabalho de projetar as bases de dados que serão utilizadas por um sistema em desenvolvimento assume, nos
dias de hoje, caracteristicas que objetivam mixar um projeto orientado a objetos com as necessidades de esse mesmo
sistema interagir com um banco de dados relacional, constituído por um conjunto de tabelas, que equivale à camada de
persistência de dados.
Essa necessidade de mixagem é real pela ausência absoluta de projetos comerciais que utilizam bancos de dados orien-
tados a objetos que sejam confiáveis a grandes massas de dados, à não popularização desses produtos e aos grandes
investimentos já realizados em softwares de Sistemas Gerenciadores de Bancos de Dados Relacionais existentes no
mercado nacional e internacional,
É incontestável a vantagem obtida em um projeto orientado a objetos. Logo, surge a necessidade de uma nova técnica de
projetar banco de dados, que não é a formatação pura de classes de dados, mas uma interação alta entre o ambiente de
análise orientada a objetos e a modelagem de dados, que é estritamente necessária à administração de dados da organi-
zação de Tecnologia da Informação (TI). A utilização de ferramentas para a camada de persistência, como o
Hybernatem acaba fazendo com que o desenvolvedor deixe de lado a preocupação com as estruturas do banco de dados, bem
como a preocupação com a qualidade das queries realizadas em uma aplicação.
Não existem técnicas ou ferramentas quepossibilitem tanto ao Administrador de Dados (DA) quanto ao Administrador de
Banco de Dados (DBA) realizarem suas funções sobre classes de dados, pois esses mesmos banco de dados relacionais
atuam e têm todas as suas funcionalidades sobre tabelas relacionais de dados, as quais são hoje de dominio maior dos
usuários de aplicações.
Há muito tempo escreve-se sobre modelagem de dados e o processo continua existindo como sempre existiu, porém, oque
desejamos neste livro é apresentar essas técnicas integradas à análise orientada a objetos, de modo a permitir que
quem trabalha tanto com OO (orientação a objetos) quanto com análise estruturada tenha domínio de projetos de
banco de dados eficientes a uma aplicação, seja qual for o ambiente de desenvolvimento em que esteja. Busca-se ainda
permitir que um projeto totalmente desenvolvido em OO (orientação a objetos) seja facilmente inserido em um ambiente
de banco de dados relacional, com o mínimo de traumas, e que seja mantida a coerência com os objetos de negócios de
uma organização.
"""
modeldados = """
>Modelagem de dados<
> Modelagem de dados é o estudo das inbformações existentes em um contexto sob observação para a construção de um mo-
delo de representação e entendimento de tal contexto. A modelagem de dados minera as informações que representam um
contexto, estruturando-as em um conjunto denominado modelo lógico de dados.
Uma das principais características da abordagem de modelagem de banco de dados é que ela fornece níveis de abstra-
ção de dados que omitem do usuário final detalhes sobre armazenamento dos dados. Não existe a preocupação com um ban-
co de daods tecnologicamente falando.
O modelo de dados é um conjuto de conceitos que podem ser utilizados para descrever as estruturas lógicas e físi-
cas de um banco de dados. Já um modelo de classes de objetos não se limita às informações e aos dados, sendo mais
amplo no momento em que integra as informações e os seus métodos de acesso, recuperação, processamento e outros em
um único objeto.
Logo, temos de encontrar e separar os dados de seus processos em determinado momento, para que possamos efetiva-
mente obter domínio do negócio para o qual a aplicação está sebdi desenvolvida. Os objetivos reais da aplicação
contiuam sendo mais facilmente compreendidos por meio de um modelo de dados, e nao de um modelo de objetos.
Normalmente, as aplicações têm sido desenvolvidas com Análise Orientada a Objetos ( AOO ) mesclada com a tradicional
modelagem de dados, com a utilização de padrões ( patterns ) de modelos de dados, que não são obtidos tão simplismen-
te quando da pura criação de diagramas de classes.
Desenvolvemos, com isso, um processo que pode ser chamado "two fase commit" entre diagrama de classes e modelo de dados
Entidade-Relacionamento.
Para que isso possa ser realizado, é preciso entender e dominar as técnicas de modelagem de dados e depois, final-
mente, aprender a lidar com sua equivalência em um modelo de calsses de objetos.
O objetivo deste livro é explorar e ensinar como modelar dados para ambientes de banco de dados relacionais, com-
plementando com a implementação desses bancos seja em um ambiente tradicional, seja em um ambiente orientado a
objetos, tal como uma aplicação desenvolvida em Java, com base em experiências realizadas por nós.
Historicamente, os primeiros modelos de bancos de dados datam da década de 1960. Desde então, a pesquisa cientí-
fica na área procurou evoluir no sentido de definir, encontrar modelos que representem da melhor maneira possível os
dados de uma realidade, ou seja, que organizem os dados de uma forma mais próxima do modo como são vistos e manipula-
dos pelas pessoas no mundo real.
A ideia é definir abstrações que facilitem a compreensão da organização dos dados pelo usuário, tornando cada vez
mais transparente e independente o conhecimento da organização física, independentemente de precisar utilizar o
conhecimento técnico de um conjunto de técnicas orientadas a objetos para ter esse entendimento.
O objetivo de um modelo de dados é ter certeza de que todos os objetos de dados existentes em determinado contexto
e requeridos pela aplicação e pelo banco de dados estão completamente representados e com precisão. Pelo fato de os
dados modelados usarem notações facilmente compreendidads e em um idioma natural, eles podem ser revisados e verifica-
dos pelos usuários finais.
O modelo de dados também deve ser detalhado o bastante para ser usado pelo implementador ( DBA ) do banco de dados
como uma espécie de fotocópia para construir o banco de dados físico. Será utilizado toda a informação que está no mo-
delo de dados lógicos para definir as tabelas de um banco de dados relacional, chaves primárias e chaves
estrangeiras, procedimentos armazenados ( stored procedures ) e gatilhos ( tiggers ).
Um banco de dados mal projetado requer mais tempo e trabalho em longo prazo. Sem planejamento e análise
cuidadosa, você pode criar um banco de dados que omita alguns dados exigidos ou que seja inconsistente em relação ao
contexto de informações que ele deve refletir. Resultados incorretos ou incompatíveis em uma aplicação sistêmica impo-
ssibilitam inclusive acomodar as mudanças de exigências dos usuários ao longo do tempo, ou implicam que o bando de
dados tenha constante manutenção em suas estruturas e aplicação fique extremamente dependente do próprio banco de dados.
Para ser efetivo, um modelo de dados deve ser simples o bastante para comunicar ao usuário final a estrutura de dados
requerida pelo banco de dados e bastante detalhado para o DBA usar para criação da estrutura física correspondente
em um SGBD.
O Modelo Entidade-Relacionamento ( MER ) é o método mais comum para construção de modelos de dados para banco de dados
de relacionais.
O mais comum em um modelo de dados é uma pequena coleção de mecanismos de abstração ditos primitivos, que são classi-
ficação, agregação e generalização.
Abstrações ajudam o analista a entender, classificar e modelar uma realidade ou alguma coisa do mundo real em que
está em observação"""
abstração = """
>Abstração<
> Uma abstração ou a capacidade de abstração é um processo mental, que usamos quando selecionamos várias caracterís-
ticas e várias propriedades de um conjunto de objetos ou fatos, e excluímos outras que nâo são relevantes em um
contexto. Em outras palavras, aplicamos abstração quando nos concentramos nas propriedades de um conjunto de objetos
ou coisas que consideramos essenciais, e desprezamos outras que não consideramos importantes, sempre dentro de um
contexto sob observação ou análise.
O analista, durante a modelagem conceitual dos dados, deve se concentrar na observação dos objetos relevantes que
existem em uma realidade ou contexto, com a finalidade de contruir um modelo de compreensão e conceitos existentes
nessa realidade. Esse primeiro modelo é chamado de minimundo, sem pensar no momento em automatizar a informação dessa
realidade.
Em síntese, abstração é a visão, sem conceituações técnicas, que obtemos na mente a partir de uma realidade
qualquer do mundo real.
Figura 1.1:
\_____ ______/
\ / /
\---------------/
/ \ /\
___|___ \ /__\___
/ \ \ / \
| o | \/| o |
\_______/ \_______/
L2 = " Engenharia eletronica"
CDEcap12 = "-Modulação e deteção-"
Pl1L2 = " Para que os sinais de rádio tenham uso prático, devem transportar informação. Está é aplica-"
l2L2 = " da ao sinal de rádio na parte final do sistema que a produz (transmissor) e é extraída e"
l3L2 = " utilizada no extremo que a recebe (receptor)."
pergunta = input("Digite o comando de escolha: ")
print(" ")
if pergunta=="BDD":
print(L1)
print(" ")
print(" ")
print(Prefacio)
print("\n")
print(" ==============================================================================================")
print("""Para mostrar o capitulo que queiras ler ou continuar aonde parou
digite os seguintes comandos:
Comandos:
Cap1 = Projeto de Banco de Dados
(Haverá mais atualizações)
============================================================================================== """)
pergunta2 = input("Digite o capitulo que queiras ler: ")
if pergunta2=="Cap1" or pergunta2=="cap1":
print(cap1)
elif pergunta=="CDE":
print(L2)
print(" ")
print(" ")
print(CDEcap12)
print(" ")
print(Pl1L2)
print(l2L2)
print(l3L2)
print(" ")
else:
pergunta = input("Comando incorreto, tente novamente: ")