Informática, perguntado por naldinhosilvap459wd, 1 ano atrás

Nosso projeto consiste em desenvolver um script na linguagem SQL (sintaxe SQLite). Esse script deve contemplar a criação das tabelas de acordo com o modelo físico abaixo:

Um colega escreveu isso:
Bem, primeiro vamos definir a ordem da criação das tabelas.
1. SITUACAO
2. SOCIO
3. MARCA
4. CARRO

Não precisa ser necessariamente nessa ordem, mas optei por ela. Após definir a ordem, crie cada tabela apenas colocando o nome das colunas. Ex.:

-- Tabela da Situacao
CREATE TABLE SITUACAO (
    id_situacao INTEGER NOT NULL PRIMARY KEY,
    situacao VARCHAR(10),
    id_socio INTEGER DEFAULT NULL,
    FOREIGN KEY(id_socio) REFERENCES SOCIO(id_socio) -- Para (1,1)
);

-- Tabela do Socio
CREATE TABLE SOCIO (
    id_socio INTEGER  NOT NULL PRIMARY KEY,
    nome VARCHAR(256),
    cpf VARCHAR(11),
    email VARCHAR(256),
    id_situacao INTEGER,
    FOREIGN KEY(id_situacao) REFERENCES SITUACAO(id_situacao)
);

-- Tabela da Marca
CREATE TABLE MARCA (
    id_marca INTEGER NOT NULL PRIMARY KEY,
    marca VARCHAR(128),
    id_carro INTEGER DEFAULT NULL,
    FOREIGN KEY(id_carro) REFERENCES CARRO(id_carro) -- Para (1,1)
);

-- Tabela do Carro
CREATE TABLE CARRO (
    id_carro INTEGER NOT NULL PRIMARY KEY,
    modelo VARCHAR(128),
    cor VARCHAR(64),
    placa VARCHAR(10),
    id_socio INTEGER,
    id_marca INTEGER,
    FOREIGN KEY(id_socio) REFERENCES SOCIO(id_socio),
    FOREIGN KEY(id_marca) REFERENCES MARCA(id_marca)
);

Mas eu preciso salvar isso em PDF para poder enviar.
E não sei como que faço.
Tem como alguém me ajudar?

Anexos:

Soluções para a tarefa

Respondido por LarissaMoura3
30

Inicialmente é preciso realizar a definição da ordem que as tabelas serão criadas:

1. SITUAÇÃO

2. SÓCIO

3. MARCA

4. CARRO

Após a definição da ordem, deve-se criar cada tabela somente colocando o nome das colunas.  

Exemplo:

CREATE TABLE TABELA (

campo1,

campo2,

campoN

);

É necessário fazer para todas as tabelas. Após, deve-se adicionar o tipo dos dados e, nos campos chaves, adicionar a propriedade de primary key e not null.  

Depois deve-se criar os campos que serão a chave estrangeira e abaixo declará-los como chaves estrangeiras e para qual tabela.atributo farão o referenciamento.

Para a criação da relação (1, 1), apenas crie uma foreign key nas duas tabelas.

Tabela Situação

CREATE TABLE SITUACAO (

   id_situacao INTEGER NOT NULL PRIMARY KEY,

   situacao VARCHAR(10),

   id_socio INTEGER DEFAULT NULL,

   FOREIGN KEY(id_socio) REFERENCES SOCIO(id_socio) -- Para (1,1)

);

Tabela Sócio

CREATE TABLE SOCIO (

   id_socio INTEGER  NOT NULL PRIMARY KEY,

   nome VARCHAR(256),

   cpf VARCHAR(11),

   email VARCHAR(256),

   id_situacao INTEGER,

   FOREIGN KEY(id_situacao) REFERENCES SITUACAO(id_situacao)

);

Tabela Marca

CREATE TABLE MARCA (

   id_marca INTEGER NOT NULL PRIMARY KEY,

   marca VARCHAR(128),

   id_carro INTEGER DEFAULT NULL,

   FOREIGN KEY(id_carro) REFERENCES CARRO(id_carro) -- Para (1,1)

);

Tabela Carro

CREATE TABLE CARRO (

   id_carro INTEGER NOT NULL PRIMARY KEY,

   modelo VARCHAR(128),

   cor VARCHAR(64),

   placa VARCHAR(10),

   id_socio INTEGER,

   id_marca INTEGER,

   FOREIGN KEY(id_socio) REFERENCES SOCIO(id_socio),

   FOREIGN KEY(id_marca) REFERENCES MARCA(id_marca)

);

Acrescente esse script em um arquivo com a extensão SQL (script.sql) e após faça uma base de dados com o sqlite3.  

Como por exemplo:

$ sqlite3 minha_base.sqlite3

Ou abra o sqlite3 e use o comando:

sqlite> .open minha_base.sqlite3.

Depois execute o script para criar as tabelas e suas relações:

sqlite> .read script.sql

Por fim, liste as tabelas com o comando .tables e veja a estrutura delas com o .schema.

Bons estudos!



Perguntas interessantes