Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Конференция «Технологии управления данными 2018»
СУБД, платформы, инструменты, реальные проекты.
29 ноября 2018 г.

Примеры трансформации объектов модели данных.

  1. Отношение один-к-одному, где зависимая сущность имеет дополнительное отношения к родительской сущности

    "Персональные компьютеры принадлежат инженерам, но не все инженеры имеют персональные компьютеры"

    CREATE TABLE Engineer
    ( en_num INT NOT NULL,
    pc_num INT,
    PRIMARY KEY (en_num) )
     
    CREATE TABLE PC
    ( pc_num INT NOT NULL,
    en_num INT,
    PRIMARY KEY (pc_num), 
    FOREIGN KEY (en_num) REFERENCES Engineer ON DELETE SET NULL )
  2. Отношение один-к-одному, где зависимая сущность имеет обязательное отношения к родительской сущности

    "У каждого отдела должен быть начальник, но начальник должен быть начальником только одного отдела"

    CREATE TABLE Manager
    ( mgr_num INT NOT NULL,
    PRIMARY KEY (mgr_num) )
     
    CREATE TABLE Dept
    ( dep_num INT NOT NULL,
    mgr_num INT NOT NULL,
    PRIMARY KEY (dep_num),
    UNIQUE (mgr_num) 
    FOREIGN KEY (mgr_num) REFERENCES Manager ON DELETE RESTRICT )
  3. Отношение один-к-одному, где обе сущности обязательны.

    "Государство имеет одного правителя и правитель правит только одним государством"

    CREATE TABLE State
    ( st_name CHAR(20) NOT NULL,
    gv_name CHAR(20) NOT NULL,
    PRIMARY KEY (st_name))
     
    CREATE TABLE Governor
    ( st_name CHAR(20) NOT NULL,
    gv_name CHAR(20) NOT NULL,
    PRIMARY KEY (dv_name),
    UNIQUE (st_name) 
    FOREIGN KEY (st_name) REFERENCES State ON DELETE RESTRICT )
  4. Отношение один-ко-многим, где зависимая сущность имеет необязательное отношение к родительской сущности.

    "У инженера есть только одна секретарша, однако одна секретарша может работать на несколько инженеров"

    CREATE TABLE Secretary
    ( sc_num INT NOT NULL,
    PRIMARY KEY (sc_num))
     
    CREATE TABLE Engineer
    ( en_num INT NOT NULL,
    sc_num INT,
    PRIMARY KEY (en_num), 
    FOREIGN KEY (sc_num) REFERENCES Secretary ON DELETE SET NULL )
  5. Отношение один-ко-многим, где зависимая сущность имеет обязательное отношение к родительской сущности.

    "У каждого инженера обязательно есть только одна секретарша, однако одна секретарша может работать на несколько инженеров"

    CREATE TABLE Secretary
    ( sc_num INT NOT NULL,
    PRIMARY KEY (sc_num) )
     
    CREATE TABLE Engineer
    ( en_num INT NOT NULL,
    sc_num INT,
    PRIMARY KEY (en_num), 
    FOREIGN KEY (sc_num) REFERENCES Secretary ON DELETE RESTRICT )
  6. Отношение многие-ко-многим.

    "В профессиональное объединение входят как инженеры, так и не инженеры, в то же время, инженер может состоять в нескольких профессиональных ассоциациях."

    CREATE TABLE PrfAsso
    ( ac_num INT NOT NULL,
    PRIMARY KEY (ac_num) )
     
    CREATE TABLE Engineer
    ( en_num INT NOT NULL,
    PRIMARY KEY (en_num) )
     
    CREATE TABLE Association_Engineer
    ( en_num INT NOT NULL,
    ac_num INT NOT NULL,
    PRIMARY KEY (en_num, ac_num), 
    FOREIGN KEY is_mem_1 (en_num) REFERENCES Engineer 
    	ON DELETE CASCADE,
    FOREIGN KEY is_mem_2 (ac_num) REFERENCES PrfAsso 
    	ON DELETE CASCADE )
  7. Отношение с атрибутами.

    "Лекарства производятся по лицензии фирмы. Фирма лицензировала производство нескольких деталей. Дата выдачи лицензии является атрибутом отношения".

    CREATE TABLE Drug
    ( dt_num INT NOT NULL,
    PRIMARY KEY (dt_num) )
     
    CREATE TABLE DrManu
    ( fm_num INT NOT NULL,
    PRIMARY KEY (fm_num) )
     
    CREATE TABLE Drug_Firm
    ( dt_num INT NOT NULL,
    fm_num INT NOT NULL,
    Date,
    PRIMARY KEY (dt_num, fm_num), 
    FOREIGN KEY lic_1 (dt_num) REFERENCES Drug ON DELETE CASCADE,
    FOREIGN KEY lic_2 (fm_num) REFERENCES DrManu ON DELETE CASCADE )
  8. Отношение наследования

    "Компонент устройства может быть как стандартным компонентом, так и компонентом, выполненным на заказ".

    CREATE TABLE Component
    ( comp_id INT NOT NULL,
    PRIMARY KEY (comp_id) )
     
    CREATE TABLE Standard
    ( inv_num INT NOT NULL,
    comp_id INT NOT NULL,
    PRIMARY KEY (inv_num),
    UNIQUE (comp_id),
    FOREIGN KEY (comp_id) REFERENCES Component ON DELETE RESTRICT )
     
    CREATE TABLE Make_To_Order
    ( ord_num INT NOT NULL,
    comp_id INT NOT NULL,
    PRIMARY KEY (ord_num),
    UNIQUE (comp_id),
    FOREIGN KEY (comp_id) REFERENCES Component ON DELETE RESTRICT )

При переносе из реляционного дизайна в модель данных можно не использовать средства моделирования данных. DataAtlas Dictionary обеспечивает способ, посредством которого информация из каталога баз данных переносится в объекты системы TeamConnection с таблицами и определениями таблиц. После этого можно преобразовать полученную таким путем модель данных в модель данных, работающую с DataAtlas Modeler.

[Назад] [Содержание] [Вперед]

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...