суббота, 2 июня 2018 г.

Esquema de banco de dados do sistema comercial


Bancos de Dados Securities Master para Negociação Algorítmica.
Bancos de Dados Securities Master para Negociação Algorítmica.
No comércio algorítmico, o centro das atenções geralmente brilha no componente de modelo alfa do sistema de negociação completo. Essa é a parte do sistema que gera os sinais de negociação, antes da filtragem por um sistema de gerenciamento de risco ou de construção de portfólio. Como tal, os comerciantes de algo geralmente gastam uma parte significativa de seu tempo de pesquisa refinando o modelo alfa para gerar o maior índice de Sharpe antes de colocar seu sistema em produção.
No entanto, um modelo alfa é tão bom quanto os dados que estão sendo alimentados. Este conceito é bem resumido pelo velho ditado da ciência da computação de "lixo, lixo fora". É crucial que dados precisos e oportunos sejam usados ​​para alimentar o modelo alfa. Caso contrário, os resultados serão, na melhor das hipóteses, ruins ou, na pior das hipóteses, completamente incorretos, levando a grandes perdas se o sistema for colocado em produção.
Neste artigo, quero discutir questões relacionadas à aquisição e fornecimento de dados precisos oportunos para um sistema de backtesting de estratégia algorítmica e, finalmente, um mecanismo de execução de negociação. Em particular, estudaremos como obter dados financeiros, como armazená-los, como limpá-los e como exportá-los. No setor financeiro, esse tipo de serviço de dados é conhecido como banco de dados mestre de títulos.
O que é um mestre de valores mobiliários?
Um mestre de títulos é um banco de dados de toda a organização que armazena dados fundamentais, de preços e transacionais para uma variedade de instrumentos financeiros em todas as classes de ativos. Ele fornece acesso a essas informações de maneira consistente para ser usado por outros departamentos, como gerenciamento de risco, compensação / liquidação e negociação proprietária.
Em grandes organizações, uma variedade de instrumentos e dados será armazenada. Aqui estão alguns dos instrumentos que podem ser de interesse para uma empresa:
Acções Equity Options Índices Taxas de Juros Cambiais Futuros Commodities Bonds - Derivativos do Governo e Societários - Caps, Floors, Swaps.
Bases de dados mestre de títulos geralmente têm equipes de desenvolvedores e especialistas em dados garantindo alta disponibilidade dentro de uma instituição financeira. Embora isso seja necessário em grandes empresas, no nível de varejo ou em um fundo pequeno, um mestre em títulos pode ser muito mais simples. Na verdade, embora os grandes mestres de valores mobiliários usem bancos de dados empresariais caros e sistemas de análise, é possível usar software de código aberto de commodity para fornecer o mesmo nível de funcionalidade, assumindo um sistema bem otimizado.
Quais conjuntos de dados são usados?
Para o comerciante algorítmico de varejo ou para o pequeno fundo quantitativo, os conjuntos de dados mais comuns são o preço de fim de dia e histórico intradiário para ações, índices, futuros (principalmente commodities ou renda fixa) e câmbio (forex). Para simplificar esta discussão, nos concentraremos exclusivamente nos dados de fim de dia (EOD) para ações, ETFs e índices de ações. Artigos posteriores discutirão a adição de dados de frequência mais alta, classes de ativos adicionais e dados de derivativos, que possuem requisitos mais avançados.
É fácil obter dados de EOD para ações. Há vários serviços que fornecem acesso gratuitamente por meio de APIs disponíveis na Web:
É fácil fazer o download manual de dados históricos para títulos individuais, mas isso consome tempo se muitas ações precisarem ser baixadas diariamente. Assim, um componente importante do nosso título de títulos atualizará automaticamente o conjunto de dados.
Outra questão é o período de lookback. Até que ponto no passado precisamos ir com nossos dados? Isso será específico para os requisitos da sua estratégia de negociação, mas há certos problemas que abrangem todas as estratégias. O mais comum é a mudança de regime, que é frequentemente caracterizada por um novo ambiente regulatório, períodos de maior / menor volatilidade ou mercados de tendência de longo prazo. Por exemplo, uma estratégia de curto prazo direcional / de tendência a longo prazo provavelmente teria um bom desempenho de 2000 a 2003 ou 2007-2009. No entanto, teria sido difícil para 2003-2007 ou 2009 até o presente.
Minha regra geral é obter o máximo de dados possível, especialmente para dados de EOD, onde o armazenamento é barato. Só porque os dados existem no seu mestre de segurança, isso não significa que deva ser utilizado. Há ressalvas em torno do desempenho, pois tabelas de banco de dados maiores significam tempos de consulta mais longos (veja abaixo), mas os benefícios de ter mais pontos de amostra geralmente superam quaisquer problemas de desempenho.
Como em todos os dados financeiros, é imperativo estar ciente dos erros, como preços altos / baixos incorretos ou viés de sobrevivência, que discuti longamente com o QuantStart (veja aqui).
O que é usado para armazenar dados?
Existem três maneiras principais de armazenar dados financeiros. Todos eles possuem diferentes graus de acesso, desempenho e capacidades estruturais. Vamos considerar cada um por sua vez.
Armazenamento de Arquivo Simples.
O armazenamento de dados mais simples para dados financeiros e a maneira como você provavelmente receberá os dados de qualquer fornecedor de dados é o formato de arquivo simples. Os arquivos simples frequentemente usam o formato CSV (Comma-Separated Variable), que armazena uma matriz bidimensional de dados como uma série de linhas, com dados de coluna separados por um delimitador (geralmente uma vírgula, mas podem ser espaços em branco, como como um espaço ou tabulação). Para dados de precificação EOD, cada linha representa um dia de negociação através do paradigma OHLC (ou seja, os preços no aberto, alto, baixo e próximo do período de negociação).
A vantagem dos arquivos simples é sua simplicidade e capacidade de serem fortemente compactados para arquivamento ou download. As principais desvantagens residem na falta de capacidade de consulta e no baixo desempenho para iteração em grandes conjuntos de dados. O SQLite e o Excel atenuam alguns desses problemas, fornecendo certos recursos de consulta.
Armazenamento de documentos / NoSQL.
As bases de dados de armazenamento de documentos / NoSQL, embora certamente não sejam um conceito novo, ganharam proeminência significativa nos últimos anos devido ao seu uso em empresas de "escala da web", como Google, Facebook e Twitter. Eles diferem substancialmente dos sistemas RDBMS, pois não há conceito de esquemas de tabelas. Em vez disso, há coleções e documentos, que são as analogias mais próximas das tabelas e registros, respectivamente. Existe uma ampla taxonomia de lojas de documentos, cuja discussão está bem fora deste artigo! No entanto, algumas das lojas mais populares incluem MongoDB, Cassandra e CouchDB.
As lojas de documentos, em aplicações financeiras, são mais adequadas a dados fundamentais ou metadados. Os dados fundamentais para ativos financeiros vêm em muitas formas, como ações corporativas, declarações de lucros, arquivamentos na SEC, etc. Assim, a natureza sem esquema dos bancos de dados NoSQL é bem adequada. No entanto, os bancos de dados NoSQL não são bem projetados para séries temporais, como dados de preços de alta resolução e, portanto, não os consideraremos mais neste artigo.
Sistemas de gerenciamento de banco de dados relacional.
Um sistema de gerenciamento de banco de dados relacional (RDBMS) utiliza o modelo relacional para armazenar dados. Esses bancos de dados são particularmente adequados aos dados financeiros porque diferentes "objetos" (como trocas, fontes de dados, preços) podem ser separados em tabelas com relacionamentos definidos entre eles.
O RDBMS faz uso da Linguagem de Consulta Estruturada (SQL) para realizar consultas de dados complexas em dados financeiros. Exemplos de RDBMS incluem Oracle, MySQL, SQLServer e PostgreSQL.
As principais vantagens do RDBMS são sua simplicidade de instalação, independência de plataforma, facilidade de consulta, facilidade de integração com os principais softwares de backtest e recursos de alto desempenho em larga escala (embora alguns argumentem que este último não é o caso!). Suas desvantagens costumam ser devidas à complexidade da customização e às dificuldades de obter o desempenho, sem o conhecimento subjacente de como os dados do RDBMS são armazenados. Além disso, eles possuem esquemas semi-rígidos e, portanto, os dados geralmente precisam ser modificados para se adequarem a esses projetos. Isso é diferente dos armazenamentos de dados NoSQL, em que não há esquema.
Para todos os artigos sobre implementação de precificação histórica futura no QuantStart, faremos uso do MySQL RDBMS. É gratuito, de código aberto, multiplataforma, altamente robusto e seu comportamento em escala é bem documentado, o que o torna uma escolha sensata para o trabalho quant.
Como os dados históricos são estruturados?
Existe um corpo significativo de teorias e pesquisas acadêmicas realizadas no campo da ciência da computação para o design ideal para armazenamentos de dados. No entanto, não vamos entrar em muitos detalhes, pois é fácil se perder em minúcias! Em vez disso, apresentarei um padrão comum para a construção de um mestre de segurança de ações, que você pode modificar conforme achar adequado para seus próprios aplicativos.
A primeira tarefa é definir nossas entidades, que são elementos dos dados financeiros que serão mapeados para as tabelas no banco de dados. Para um banco de dados mestre de ações, prevejo as seguintes entidades:
Trocas - Qual é a fonte original final dos dados? Fornecedor - De onde é obtido um determinado ponto de dados? Instrumento / Ticker - O ticker / símbolo para o patrimônio ou índice, juntamente com informações corporativas da empresa ou fundo subjacente. Preço - O preço real de um determinado título em um determinado dia. Ações corporativas - A lista de todos os desdobramentos ou ajustes de dividendos (isso pode levar a uma ou mais tabelas), necessários para ajustar os dados de precificação. Feriados Nacionais - Para evitar a classificação incorreta de feriados comerciais como erros de dados perdidos, pode ser útil armazenar feriados nacionais e referências cruzadas.
Existem problemas significativos no que diz respeito ao armazenamento de tickers canônicos. Eu posso atestar isso com experiência em primeira mão em um fundo de hedge lidando com esse problema exato! Diferentes fornecedores usam métodos diferentes para resolver tickers e, assim, combinar várias fontes de precisão. Além disso, as empresas tornam-se falidas, estão expostas a atividades de fusões e aquisições (ou seja, adquirem e mudam nomes / símbolos) e podem ter múltiplas classes de ações negociadas publicamente. Muitos de vocês não terão que se preocupar com isso, porque seu universo de tickers estará limitado aos constituintes maiores do índice (como o S & P500 ou o FTSE350).
Como os dados são avaliados quanto à precisão?
Dados históricos de preços de fornecedores são propensos a muitas formas de erro:
Ações Corporativas - Tratamento incorreto de desdobramentos e ajustes de dividendos. É preciso ter absoluta certeza de que as fórmulas foram implementadas corretamente. Picos - Pontos de preços que excedem em muito determinados níveis históricos de volatilidade. É preciso ter cuidado aqui, pois esses picos ocorrem - veja o May Flash Crash para um exemplo assustador. Os picos também podem ser causados ​​por não levar em conta os desdobramentos quando eles ocorrem. Os scripts de filtro de pico são usados ​​para notificar os operadores sobre essas situações. Agregação do OHLC - Dados OHLC livres, como do Yahoo / Google, são particularmente propensos a situações de 'agregação de tick ruim', onde pequenas trocas processam pequenos negócios bem acima dos preços de troca 'principais' do dia, levando a máximos / mínimos inflacionados excessivamente uma vez agregado. Isso é menos um "erro" como tal, mas é mais um problema para ser cauteloso. Dados em falta - Os dados em falta podem ser causados ​​por falta de negociações em um determinado período de tempo (comum em dados de resolução de segundos / minutos de small-caps sem liquidez), por feriados ou simplesmente por um erro no sistema de troca. Os dados em falta podem ser preenchidos (isto é, preenchidos com o valor anterior), interpolados (linearmente ou de outro modo) ou ignorados, dependendo do sistema de negociação.
Muitos desses erros dependem de julgamento manual para decidir como proceder. É possível automatizar a notificação de tais erros, mas é muito mais difícil automatizar sua solução. Por exemplo, é preciso escolher o limite para ser informado sobre picos - quantos desvios padrão usar e durante o período de lookback? Um stdev muito alto perderá alguns picos, mas muito baixo e muitos noticiários incomuns levarão a falsos positivos. Todas essas questões exigem um julgamento avançado do trader de quantificação.
Também é necessário decidir como corrigir erros. Os erros devem ser corrigidos assim que forem conhecidos e, em caso afirmativo, deve ser realizada uma trilha de auditoria? Isso exigirá uma tabela extra no banco de dados. Isso nos leva ao tópico de back-filling, que é uma questão particularmente insidiosa para o backtesting. Trata-se de correção automática de dados ruins a montante. Se o fornecedor de dados corrigir um erro histórico, mas uma estratégia de negociação com backtested estiver em produção com base em pesquisas de dados ruins anteriores, é necessário tomar decisões com relação à eficácia da estratégia. Isso pode ser um pouco mitigado por estar plenamente ciente de suas métricas de desempenho da estratégia (em particular, a variação em suas características de ganhos / perdas para cada negociação). Estratégias devem ser escolhidas ou projetadas de tal forma que um único ponto de dados não possa distorcer o desempenho da estratégia em grande medida.
Como esses processos são automatizados?
O benefício de escrever scripts de software para realizar o download, armazenamento e limpeza dos dados é que os scripts podem ser automatizados por meio de ferramentas fornecidas pelo sistema operacional. Em sistemas baseados em UNIX (como Mac OSX ou Linux), pode-se fazer uso do crontab, que é um processo em execução contínua que permite que scripts específicos sejam executados em horários definidos ou em períodos regulares. Existe um processo equivalente no MS Windows conhecido como o Agendador de Tarefas.
Um processo de produção, por exemplo, pode automatizar o download de todos os preços do final do dia do S & P500 assim que forem publicados por meio de um fornecedor de dados. Em seguida, ele executará automaticamente os scripts de filtragem de dados e spike em falta, alertando o profissional por email, SMS ou outra forma de notificação. Neste ponto, todas as ferramentas de backtesting terão automaticamente acesso a dados recentes, sem que o operador tenha que levantar um dedo! Dependendo se o seu sistema de negociação está localizado em um desktop ou em um servidor remoto, você pode escolher, no entanto, ter um processo semi-automatizado ou totalmente automatizado para essas tarefas.
Como os dados são fornecidos para software externo?
Quando os dados são atualizados automaticamente e residem no RDBMS, é necessário inseri-los no software de backtesting. Esse processo será altamente dependente de como o seu banco de dados está instalado e se o seu sistema de negociação é local (por exemplo, em um computador desktop) ou remoto (como em um servidor Exchange co-localizado).
Uma das considerações mais importantes é minimizar a entrada / saída (E / S) excessiva, pois isso pode ser extremamente caro, tanto em termos de tempo quanto de dinheiro, assumindo conexões remotas onde a largura de banda é cara. A melhor maneira de abordar esse problema é mover somente os dados por uma conexão de rede que você precisa (via consulta seletiva) ou exportar e compactar os dados.
Muitos RDBMS suportam a tecnologia de replicação, que permite que um banco de dados seja clonado em outro sistema remoto, geralmente com um grau de latência. Dependendo da sua configuração e quantidade de dados, isso pode ser apenas da ordem de minutos ou segundos. Uma abordagem simples é replicar um banco de dados remoto em uma área de trabalho local. No entanto, esteja avisado que os problemas de sincronização são comuns e consomem muito tempo para serem corrigidos!
Tentarei discutir algumas situações de exemplo abaixo, mas há muitas maneiras de abordar esse problema e elas serão altamente específicas para sua configuração individual:
Se você estiver usando o MySQL, então você pode fazer uso de uma linguagem de script de código aberto, como o Python (através da biblioteca MySQLdb ou SQLAlchemy ORM) para se conectar ao banco de dados e executar consultas sobre ele.
Bibliotecas de análise de dados mais recentes, como pandas, permitem acesso direto ao MySQL (veja este tópico para um exemplo).
Você também pode usar seu idioma / ambiente favorito (C ++, C #, Matlab) e um link ODBC para se conectar a uma instância do MySQL.
MS SQLServer.
O SQLServer foi projetado para ser facilmente conectado a linguagens MS. NET, como C # e Visual Basic, por meio do LINQ ORM. Você também pode se conectar ao SQLServer com Python, via pyODBC.
Existem claramente muitas outras combinações de armazenamento de dados e ambiente de backtesting. No entanto, vou deixar a discussão dessas configurações para artigos posteriores!
Próximos passos.
Em artigos futuros, vamos discutir os detalhes técnicos de implementação para mestres de valores mobiliários. Em particular, vamos instalar o MySQL, configurá-lo para dados de preços e obter dados EOD do Yahoo / Google finance e explorá-los através da biblioteca de análise de dados do pandas.
A Quantcademy.
Participe do portal de associação da Quantcademy que atende à crescente comunidade de traders de quantificação de varejo e aprenda como aumentar a lucratividade de sua estratégia.
Negociação Algorítmica Bem Sucedida.
Como encontrar novas ideias de estratégia de negociação e avaliá-las objetivamente para o seu portfólio usando um mecanismo de backtesting personalizado no Python.
Comércio Algorítmico Avançado.
Como implementar estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas Bayesianas com R e Python.

Esquema do banco de dados do sistema de negociação
Bem-vindo ao Home do Open Java Trading System.
O Open Java Trading System (OJTS) pretende ser uma infra-estrutura comum para desenvolver sistemas de negociação de ações. Consiste em quatro partes: a coleta de dados brutos pela internet, o reconhecimento de sinais de negociação, um módulo de visualização e módulos para conectar as interfaces programáticas de plataformas de negociação, como bancos. O objetivo do projeto é fornecer uma infra-estrutura comum Java independente (independente de plataforma) para desenvolvedores de sistemas de negociação. Alguns dos aspectos que devem ser abordados são fornecer um esquema de banco de dados compatível com SQL92 comum para armazenar dados financeiros, interfaces Java comuns para como trocar dados entre diferentes módulos, visualização de dados financeiros brutos e sinais de negociação e vários outros aspectos comuns necessários para criar um sistema final de negociação.
Por causa do meu trabalho e da minha família, não encontro mais tempo para melhorar a OJTS. Eu continuo atualizando a seção de links abaixo que irá guiá-lo para projetos java open source mais ativos nessa área, no entanto.
Na verdade, como consequência do meu interesse pela dinâmica dos mercados de ações, comecei uma jornada para os detalhes mais profundos da economia nacional, a fim de entender as taxas de câmbio. Este tópico finalmente me levou a um estudo mais profundo do dinheiro em si como a unidade métrica que usamos na economia para medir "valor", "sucesso" ou "utilidade". Este tópico acabou por ser extremamente interessante, mas ao mesmo tempo foi muito difícil encontrar qualquer informação sobre como funciona o nosso sistema monetário. Circule e pergunte às pessoas de onde vem o dinheiro, quem o cria e o que determina seu valor. Você vai notar que até mesmo as pessoas que têm um mestrado ou doutorado. em economia não vai saber esses detalhes. Ah, sim, eles responderão em termos técnicos enigmáticos, mas não conseguirão desenhar um diagrama simples que descreva o processo.
H. G. Wells é relatado para ter dito:
"Escrever de moeda é geralmente reconhecido como uma prática censurável, na verdade quase indecente. Os editores vão implorar ao escritor quase que em lágrimas para não escrever sobre dinheiro, não porque seja um assunto desinteressante, mas porque sempre foi profundamente perturbador. "
Sugiro a qualquer pessoa que viva em uma sociedade democrática que leia sobre esse assunto. Afeta nossas vidas todos os dias em uma extensão que não pode ser exagerada! Na minha opinião, todos os cidadãos de um país democrático nesse mundo devem saber de onde vem o nosso dinheiro. O mais provável é que você tenha acessado este site para procurar ferramentas que o ajudem a aumentar sua riqueza monetária. Entender a unidade métrica "dinheiro" (não importa se dólar ou euro) será um ingrediente importante em seu kit de ferramentas para ganhar dinheiro.
Se você tem pouco tempo e só pode dar ao luxo de ler um único livro sobre esse assunto, então eu sugiro que você leia Riqueza, riqueza virtual e dívida por Frederick Soddy. Eu consegui comprar uma cópia usada via Amazon por US $ 23,48, mas também existe uma versão online. Você precisará do plugin DjVu para lê-lo. Este livro foi publicado originalmente em 1929, mas ainda descreve os fatos reais muito bem. Mesmo que eu não concorde com todas as conclusões de Frederick Soddy, seu trabalho é estimulante e fará com que você faça as perguntas certas.

Projeto de banco de dados para um sistema de negociação de ações Requisitos de dados:
Projeto de banco de dados para um sistema de negociação de ações.
O Sistema de Negociação de Ações é um sistema automatizado para negociar ações e opções de empresas de capital aberto e possui os seguintes requisitos de dados:
Uma empresa é determinada exclusivamente pelo seu nome, tendo ao mesmo tempo um endereço da sede e uma data estabelecida. Endereço é um atributo composto, que compõe o número da rua, o número do apartamento, a cidade, a rua e o código postal. Algumas empresas negociam ações ordinárias em bolsa e são denominadas empresas públicas. Cada empresa pública tem apenas uma dessas ações, cada ação tem um código de ações exclusivo e um número especificado de ações. Todas as ações são negociadas em uma ou mais bolsas, mas o número de bolsas de negociação não pode exceder 9. Uma troca é determinada exclusivamente pelo seu nome. Há um símbolo de ação associado a uma ação, que é usada para negociações em uma bolsa. O mesmo estoque pode ter símbolos diferentes em diferentes trocas. Uma opção em um símbolo de ação é uma garantia que é determinada exclusivamente por seu tipo, símbolo de ação, preço de exercício e data de vencimento. Uma opção é negociada na mesma bolsa que seu símbolo de ação. O tipo de uma opção é um “put” ou um “call”. Não pode ser ambos, e não pode ser outra coisa. O último preço de negociação e o volume diário atual para cada símbolo e opção devem ser registrados.
Ações e opções são detidas e negociadas por traders. Um comerciante tem um nome e um ID fiscal. O ID do imposto determina exclusivamente o comerciante. O valor do ID do imposto está entre "000001" e "900000". Os comerciantes não negociam diretamente, mas através de corretoras. Uma corretora é determinada exclusivamente por seu nome e estado. Cada corretora lida com uma ou mais bolsas e paga uma taxa fixa anual para cada troca que lida com. A taxa pode ser diferente para cada par de corretagem / troca. Um comerciante possui pelo menos uma conta com pelo menos uma corretora. Ele / ela pode deter mais de uma conta com a mesma corretora e lidar com mais de uma corretora. Uma conta é determinada exclusivamente pela corretora e pelo número da conta. Uma corretora pode não ter contas. Cada conta tem exatamente um dono. Contas mantêm títulos e dinheiro. Observe que uma ação comprada em uma bolsa pode ser vendida em outra, por isso são ações, e não símbolos, que são mantidas. Não esqueça de incluir opções nas contas.
Os comerciantes colocam ordens de negociação através de suas corretoras. Um pedido especifica a conta, exatamente um símbolo ou opção para negociar, “licitar” (comprar) ou “pedir” (vender), número de ações para negociar e a expiração do pedido. Existem dois tipos de pedidos: “mercado” e “limite”. Uma ordem de limite tem o preço limite além das propriedades mencionadas. A corretagem e o ID da ordem determinam a ordem. Uma transação é efetuada no cumprimento (possivelmente parcial) de duas ordens. Cada transação contém as seguintes informações: exatamente um pedido de compra, exatamente um pedido de compra, número de ações, preço de transação, comissões pagas pelo comprador e pelo vendedor às suas corretoras e o registro de data e hora. O número de transações e transações determina exclusivamente a transação. Observe que um pedido pode ser preenchido por várias transações. As ações e opções são negociadas se suas ordens forem atendidas por algumas transações.
Perguntas de trabalho de conclusão.
Análise de Requisitos da Parte 1.
1. Identifique as principais entidades deste sistema de negociação de ações.
2. Você pode pensar em mais entidades além daquelas descritas nos requisitos de dados para serem adicionadas ao sistema de negociação de ações?
3. A capacidade de modelar relações super-tipo / subtipo pode ser importante em tal ambiente? Por que ou por que não?
4. Você consegue pensar em mais 4 regras (além daquelas explicitamente descritas acima) que provavelmente serão usadas em um sistema de negociação de ações? Adicione suas regras aos requisitos de dados a serem implementados.
5. Justifique o uso de um DBMS Relacional como Oracle ou SQL Server para este sistema.
Parte 2- Design Conceitual.
6- Desenhe um EERD para representar com precisão este conjunto de requisitos. Este será o seu projeto conceitual. Especifique claramente quaisquer suposições que você esteja fazendo. Você pode usar qualquer ferramenta (software) para desenhar o EERD.
Parte 3 Design Lógico.
7- Foi decidido usar um DBMS relacional para implementar o banco de dados. Execute os seguintes passos.
uma. Converta seu modelo conceitual (Parte 2) em um modelo lógico que pode ser implementado em um DBMS relacional como o Oracle. Durante esse processo, você substitui os relacionamentos M-N e os atributos com vários valores por construções que podem ser implementadas no DBMS relacional. Desenhe EERD para o modelo lógico após suas modificações. Sinta-se à vontade para alterar seu modelo conceitual, se necessário.
b. Converta o EERD (item a) em um design de banco de dados. Documente seu design no formato Esquema do Banco de Dados.
Parte 4 Normalização.
Agora você está pronto para implementação. Use as convenções de nomenclatura apropriadas para todas as suas tabelas e atributos. Normalize todas as suas mesas para a terceira forma normal. Faça as alterações necessárias no EERD da Parte 2b. Explique por que essas mudanças precisavam ser feitas.
10 - Escreva instruções DDL SQL para criar banco de dados, tabelas e todas as outras estruturas. Chaves primárias e chaves estrangeiras devem ser definidas apropriadamente. As restrições de quantidade da relação entre as entidades, que devem ser descritas no diagrama EERD, não são necessárias.
Eu. Símbolo de ações: Essa visão retorna o nome da empresa, a data de constituição da empresa, o código de ações, o número de ações e os nomes de todos os símbolos de ações.
iii. Good-Trader: Esta visão retorna todas as negociações que têm pelo menos 3 contas de pelo menos 2 corretoras.
12 - Forneça instruções SQL para as seguintes consultas. Sinta-se à vontade para usar qualquer uma das visualizações que você criou na parte (e):
vi. Para cada empresa pública, liste o número de trocas nas quais suas ações são negociadas.
vii. Encontre todas as Corretoras que não possuem nenhuma conta.
viii. Listar todas as bolsas que possuam ações da empresa pública estabelecida antes de “01 de janeiro de 1980”.
ix. Encontre cada operador que tenha exatamente uma conta.
x. Encontre todos os pedidos que foram cumpridos por pelo menos 2 transações.
XI. Listar todas as empresas em que o número de suas ações negociadas excede o número total de ações.
xii. Liste toda a conta desses comerciantes populares.
xiii. Listar todas as ações que foram colocadas ordens por Good-Traders.
xiv. Listar todas as transações totalmente cumpridas suas duas ordens.
xv. Listar todas as contas que foram colocadas na ordem "limite".
Avaliação do Termo de Trabalho.
A rubrica a seguir será usada para classificar o termo papel.
CRITÉRIOS Expectativa PESO.
Completude · O trabalho de conclusão é completo e tem todas as respostas necessárias de 20% (12 pontos)
Resolução de problemas / análise § Respostas são precisas § A informação é construída em um padrão lógico para apoiar a solução fornecida § Reflete a aplicação do pensamento crítico 10% (6 pontos)
Design de banco de dados conceitual e lógico · Clareza da descrição e diagramas · Completude e sofisticação do modelo EER e do design do banco de dados · Modelos de entidades selecionadas e relacionamentos em ANERP com força de relacionamento adequada, conectividades e cardinalidades e todas as chaves apropriadamente documentadas. 20% (12 pontos)
Normalização · O design reflete as tabelas in3NF ou a lógica para escolher outra forma normal. · Os tipos de dados para os campos mostram uma compreensão minuciosa do problema e do tipo de dados a serem armazenados · Convenção de nomenclatura é selecionada e aderida em todo o projeto 20% (12 pontos)
SQL · SQL As instruções DDL e DML são apropriadas e sintaticamente corretas. 20% (12 pontos)
Formatação APA § Segue as convenções APA para página de título, cabeçalhos em execução, numeração de página, resumo, citações no texto e página de referências. 10% (6 pontos)

DBMS - Esquemas de Dados.
Esquema de Banco de Dados.
Um esquema de banco de dados é a estrutura de esqueleto que representa a exibição lógica do banco de dados inteiro. Define como os dados são organizados e como as relações entre eles estão associadas. Ele formula todas as restrições que devem ser aplicadas nos dados.
Um esquema de banco de dados define suas entidades e o relacionamento entre elas. Ele contém um detalhe descritivo do banco de dados, que pode ser representado por meio de diagramas de esquema. São os designers de banco de dados que projetam o esquema para ajudar os programadores a entender o banco de dados e torná-lo útil.
Um esquema de banco de dados pode ser dividido amplamente em duas categorias & menos;
Esquema de Banco de Dados Físico & menos; Esse esquema se refere ao armazenamento real dos dados e sua forma de armazenamento, como arquivos, índices, etc. Ele define como os dados serão armazenados em um armazenamento secundário.
Esquema de Banco de Dados Lógico & menos; Esse esquema define todas as restrições lógicas que precisam ser aplicadas nos dados armazenados. Define tabelas, visualizações e restrições de integridade.
Instância do banco de dados.
É importante distinguir esses dois termos individualmente. O esquema do banco de dados é o esqueleto do banco de dados. Ele é projetado quando o banco de dados não existe. Uma vez que o banco de dados esteja operacional, é muito difícil fazer qualquer alteração nele. Um esquema de banco de dados não contém dados ou informações.
Uma instância de banco de dados é um estado de banco de dados operacional com dados a qualquer momento. Ele contém um instantâneo do banco de dados. Instâncias de banco de dados tendem a mudar com o tempo. Um SGBD garante que cada instância (estado) está em um estado válido, seguindo diligentemente todas as validações, restrições e condições que os projetistas de banco de dados impuseram.

Esquema do banco de dados do sistema de negociação
Gerencie sua conta e acesse o conteúdo personalizado.
Conta Cloud.
Acesse seu painel de nuvem, gerencie pedidos e muito mais.
Instruções de instalação do esquema de amostra.
Este documento explica como instalar o esquema de exemplo usado para o material de garantia do Oracle OLAP 11 g: Oracle por Exemplos, amostras, etc. A instalação deve ocorrer no mesmo computador que contém o Oracle Database 11g. O usuário que executa a instalação deve ter privilégios de DBA.
Existem duas partes para a instalação:
Instalar o esquema "OLAPTRAIN" base que contém os dados de origem para o cubo Crie os cubos que são derivados dos dados de origem.
Você sempre precisará executar a etapa 1 - que instala o esquema base. Execute a etapa 2 somente se você não estiver interessado em aprender como construir cubos (por exemplo, você não planeja fazer o Oracle por exemplo, que mostra como criar cubos usando o Analytic Workspace Manager).
Requisitos de Software Oracle Database 11g (patch 11.1.0.7 ou superior) com o Oracle OLAP Option ativado.
A (s) rotina (s) de instalação realiza as seguintes tarefas:
Cria dois espaços de tabela: dm e dm_archive Cria o usuário OLAPTRAIN (e elimina o usuário se já existir) Usa o Oracle Data Pump para importar as informações encontradas no arquivo de despejo incluído (Opcional) Cria o espaço de trabalho analítico SALESTRACK contendo o cubo de vendas e previsão o esquema OLAPTRAIN (e descarta o espaço de trabalho analítico, se já existir). Os dados serão carregados e agregados.
Instalando o esquema base OLAPTRAIN.
Crie um diretório no computador em que o Oracle Database 11g está instalado. Este diretório será referido como [install_home] Faça o download e descompacte olaptrain_install. zip neste diretório Altere para o diretório [install_home] / olaptrain_install Efetue login no SQL * Plus como um usuário dba Verifique se não há usuários OLAPTRAIN conectados ao banco de dados . Caso contrário, a tentativa de descartar o usuário falhará. No prompt do SQL * Plus, execute @install_olaptrain. Siga as instruções nos prompts do SQL * Plus.
& gt; sqlplus / as sysdba.
Este procedimento instala o esquema OLAPTRAIN para o Oracle OLAP 11g.
classe de treinamento, amostras e Oracle por exemplos.
1. Você deve estar logado como um DBA para executar este procedimento.
2. Assegure-se de que todas as sessões de usuário OLAPTRAIN existentes estejam desconectadas antes de proceder.
com a instalação (esta instalação irá recriar o usuário se existir)
c: \ download \ olaptrain_install ou / home / oracle / olaptrain_install.
Especifique uma senha para o usuário OLAPTRAIN.
Instalando o espaço de trabalho analítico SALESTRACK no esquema OLAPTRAIN.
Certifique-se de que nenhum usuário tenha um espaço de trabalho analítico SALESTRACK existente aberto no esquema OLAPTRAIN (ele será recriado). Mude para o diretório [install_home] / olaptrain_install Faça o login no SQL * Plus como um usuário dba No prompt do SQL * Plus, execute @create_olaptrain_cubes. Siga as instruções nos prompts do SQL * Plus.
Os cubos e dimensões estão agora disponíveis para consulta.
& gt; sqlplus / as sysdba.
Especifique o diretório do sistema de arquivos contendo este programa de instalação.
c: \ download \ olaptrain_install ou / home / oracle / olaptrain_install.

Комментариев нет:

Отправить комментарий