Какая реляционная модель лучше для этого примера? - PullRequest
0 голосов
/ 16 ноября 2011

Это реляционная модель для базы данных ООП, что из этого лучше?:

Примечание: -> этот операнд используется для определения внешнего ключа, например (field-> table (reference))

  1. Первый

    **

    атрибут (id: auto, имя_атрибута)

    type
    (id:auto, type_name)
    
    type_attribute
    (id:auto, type_code->type(id), attribute_id->attribute(id), default_value)
    
    object
    (id:auto, name, object_type->type(id))
    
    object_property
    (id:auto, object_id->object(id), attribute_id->attribute(id), my_value)
    

**

  1. Второй

    атрибут (id: auto, имя_атрибута)

    type (id: auto, type_name)

    type_attribute (id: auto, type_code-> type (id), attribute_code-> attribute (id), default_value)

    object (id: auto, name, object_type-> type (id))

    object_property (id: auto, (object_id, object_type) -> object (id, object_type), (object_type, attribute_id) -> type_attribute (id, attribute_id), my_value)

Действительно, разница четко видна в таблице object_property.

В первой модели вы можете определить свойство, используя код и код атрибута, проблема здесь в том, что вы можете определить элементы, которые тип не определяет атрибут для типа объекта.Однако эту модель проще всего использовать, поскольку для определения объекта object_property вам понадобятся только два кода, например:

INSERT INTO object_property(object_code, attribute_code, my_value)
 VALUES (3,4,'myvalue')

Во второй модели вы можете определить свойство, используя более согласованные данные, используя object_code, object_type иattribute_code.Однако вам нужно использовать три кода и дополнительный запрос, подобный этому:

INSERT INTO object_property(object_code, object_type, attribute_code) 
VALUES (3, (select object_type from object where code = 3), 4, 'my_value')

Какой лучше?

1 Ответ

0 голосов
/ 16 ноября 2011

Вы хотели сказать "реляционная модель"?Существует только одна реляционная модель:

мы никогда не меняли аксиомы для реляционной модели.За прошедшие годы мы внесли ряд изменений в саму модель - например, мы добавили реляционные сравнения - но аксиомы (которые в основном относятся к классической логике предикатов) остались неизменными со времени первых работ Кодда.Более того, произошедшие изменения, на мой взгляд, носили эволюционный, а не революционный характер.Таким образом, я действительно утверждаю, что есть только одна реляционная модель, хотя она развивалась с течением времени и, вероятно, будет продолжать развиваться.

Теория SQL и реляций: как писать точный код SQLПо CJ Дата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...