Mô hình hóa một kịch bản trong đó mỗi Nghệ sĩ âm nhạc là một Nhóm hoặc Người biểu diễn độc tấu


12

Tôi phải thiết kế sơ đồ mối quan hệ thực thể (ERD) cho bối cảnh kinh doanh liên quan đến việc phân định các nghệ sĩ âm nhạc , như tôi sẽ trình bày chi tiết dưới đây.

Mô tả kịch bản

  • Một nghệ sĩdanh , và phải là một trong hai một Nhóm hoặc một nghệ sĩ solo (nhưng không phải cả hai).

  • Một nhóm được tạo thành từ một hoặc nhiều người biểu diễn Solo và có một số thành viên (trong đó phải được tính toán từ số lượng người biểu diễn Solo chiếm các Tập đoàn ).

  • Một nghệ sĩ solo có thể là một thành viên của nhiều nhóm hoặc không có Nhóm và có thể đóng một hoặc nhiều dụng cụ .

Câu hỏi

Làm thế nào để xây dựng một ERD để thể hiện kịch bản như vậy? Tôi bối rối với phần 'hoặc' của nó.

Câu trả lời:


15

Một phần của kịch bản mà bạn bối rối có thể được mô hình hóa với cấu trúc cổ điển được gọi là cấu trúc supertype-subtype 1 .

Tôi sẽ (1) giới thiệu một số ý tưởng sơ bộ thích hợp, (2) chi tiết cách tôi sẽ phân định mức độ khái niệm về bối cảnh kinh doanh đang được xem xét và (3) cung cấp thêm tài liệu liên quan, hay, biểu diễn mức logic tương ứng thông qua SQL Khai báo -DDL trên mạng như sau.

Giới thiệu

Một cấu trúc có tính chất này diễn ra khi, trong một môi trường kinh doanh nhất định, có một cụm các loại thực thể trong đó siêu kiểu có một hoặc nhiều thuộc tính (hoặc thuộc tính) được chia sẻ bởi phần còn lại của các loại thực thể trong cụm, tức là , các phân nhóm . Lần lượt, mỗi kiểu con có một tập các thuộc tính cụ thể chỉ áp dụng cho chính nó.

Các cụm siêu kiểu có thể có hai loại:

  • Độc quyền . Đến khi một thể hiện của kiểu siêu thế phải luôn luôn có một và chỉ một đối tác phụ; do đó, các kiểu con tiềm năng trong câu hỏi là loại trừ lẫn nhau . Đây là loại quan tâm đến kịch bản của bạn.

    Một trường hợp điển hình trong đó một siêu kiểu phụ độc quyền xuất hiện là một lĩnh vực kinh doanh trong đó cả Tổ chứcCá nhân đều được coi là các Bên hợp pháp , giống như trong tình huống được cân nhắc trong loạt bài đăng này .

  • Không có kết luận . Quà bản thân khi một supertype dụ có thể được bổ sung bằng nhiều kiểu phụ xuất hiện , mỗi trong số đó là buộc phải có của một khác nhau loại .

    Một ví dụ về loại siêu kiểu này được xử lý trong các bài viết này .

Lưu ý : Điều đáng nói là các cấu trúc siêu kiểu phụ Các phần tử của một nhân vật khái niệm khác không thuộc một khung lý thuyết quản lý dữ liệu cụ thể, có thể là các cấu trúc quan hệ, mạng hoặc phân cấp trong đó cung cấp các cấu trúc cụ thể để thể hiện các yếu tố khái niệm.

Cũng có cơ hội chỉ ra rằng mặc dù các cụm siêu kiểu phụ có một sự tương đồng nhất định với tính kế thừađa hình của chương trình ứng dụng hướng đối tượng (OOP) , nhưng thực tế chúng là các thiết bị riêng biệt vì chúng phục vụ các mục đích khác nhau. Trong một mô hình khái niệm cơ sở dữ liệu, Babthat phải đại diện cho các khía cạnh trong thế giới thực. Người ta xử lý các đặc điểm cấu trúc để mô tả các yêu cầu thông tin , trong khi ở đa hình OOP, trong số những thứ khác, một (a) phác thảo và (b) thực hiện các đặc điểm tính toánhành vi , các khía cạnh quyết định thuộc về thiết kế và lập trình chương trình ứng dụng.

Ngoài ra, một lớp OOP riêng lẻ có thể là một thành phần chương trình ứng dụng, không nhất thiết phải phản ánh lại cấu trúc của một loại thực thể riêng lẻ thuộc về mức độ khái niệm của cơ sở dữ liệu. Về mặt này, một lập trình viên ứng dụng thường có thể tạo ra, ví dụ, một lớp duy nhất mà kết hợp giữa tất cả các thuộc tính của hai (hoặc nhiều) loại thực thể mức khái niệm khác nhau và một lớp như vậy cũng có thể bao gồm các thuộc tính được tính toán.

Sử dụng các cấu trúc mối quan hệ thực thể để biểu diễn một mô hình khái niệm với các cấu trúc siêu kiểu

Bạn đã yêu cầu một sơ đồ mối quan hệ thực thể (ERD cho sự ngắn gọn), nhưng, mặc dù là một nền tảng mô hình phi thường, phương pháp ban đầu được đưa ra bởi Tiến sĩ Peter Pin-Shan Chen 2 - không cung cấp đủ các cấu trúc để thể hiện các kịch bản sắp xếp thảo luận với độ chính xác mà một mô hình khái niệm cơ sở dữ liệu thích hợp yêu cầu.

Do đó, cần phải thực hiện một số phần mở rộng cho phương pháp đã nói, tình huống mang lại kết quả trong việc phát triển một phương pháp hỗ trợ trong việc tạo ra các sơ đồ quan hệ thực thể nâng cao (EERD), một cách tự nhiên, làm phong phú thêm kỹ thuật biểu đồ ban đầu với các đặc điểm biểu cảm mới . Một trong những đặc điểm đó là, chính xác, khả năng mô tả các cấu trúc siêu kiểu phụ.

Mô hình hóa bối cảnh quan tâm của bạn

Hình minh họa trong Hình 1 là EERD (sử dụng các ký hiệu tương tự như các biểu tượng được đề xuất bởi Ramez A. Elmasri và Shamkant B. Navedit 3 , người đề cập đến các cấu trúc như siêu lớp / lớp con ) trong đó tôi mô hình hóa lĩnh vực kinh doanh mà bạn mô tả xem xét tất cả thông số kỹ thuật. Nó cũng có sẵn dưới dạng PDF có thể được tải xuống từ Dropbox .

Như bạn có thể thấy trong sơ đồ đã nói ở trên, cả hai GroupSoloPerformerđược hiển thị dưới dạng các kiểu con độc quyền của Artistloại siêu thanh:

Âm nhạc nghệ sĩ tăng cường Sơ đồ mối quan hệ thực thể

Mô tả sơ đồ

Để bắt đầu mô tả về EERD, điều quan trọng là chỉ ra rằng câu của bạn

  • “Một nghệ sĩ phải có một trong hai Nhóm hoặc một SoloPerformer (nhưng không phải cả hai)”

có liên quan đến sự khác biệt và các khía cạnh hoàn chỉnh của cụm siêu kiểu phụ trong tay.

Sự rời rạc

Tính năng phân biệt đặc biệt quan trọng bởi vì nó ở ngay tại đây, nơi mà trò chơi hay phần mà bạn đề cập đến phát huy tác dụng, do thực tế là Artistphải là một thể hiện phụ hoặc khác, mà tôi đã chỉ định trong EERD thông qua nhỏ vòng tròn chứa chữ cái dio, một cấu trúc nhận được tên của quy tắc rời rạc .

Khi một siêu kiểu có thể được bổ sung bởi một hoặc nhiều kiểu con có thể có của nó, điểm này phải được thể hiện bằng một vòng tròn nhỏ giữ nhãn có chữ cái Chữ o o, một biểu tượng gọi là quy tắc chồng lấp .

Tài sản phân biệt đối xử

Cũng trong phạm vi yếu tố rời rạc của hiệp hội siêu kiểu phụ này, đáng để chú ý đến Artist.Typetài sản, vì nó thực hiện một nhiệm vụ rất phù hợp trong sự sắp xếp này: nó hoạt động như một người phân biệt đối xử phụ . Nó được đặt tên theo cách này vì đây là thuộc tính chỉ ra loại phụ độc quyền mà một trường hợp cụ thể của một Artistliên quan đến.

Trong các trường hợp của cụm không xác định , việc sử dụng thuộc tính phân biệt đối xử là không cần thiết, đối với một siêu kiểu nhất định có thể có nhiều kiểu con dưới dạng bổ sung (như đã nêu ở trên).

Tổng số quy tắc chuyên môn và hoàn thành

Yêu cầu quy định rằng mọi Artistluôn phải có một thể hiện của kiểu con bổ sung phải thực hiện với đặc tính hoàn thành của cụm này. Điều này được mô tả bằng các quy tắc chuyên môn hóa tổng thể, được thể hiện thông qua biểu tượng hai dòng kết nối (a) Artistsiêu kiểu với (b) cấu trúc quy tắc rời rạc.

Liên kết các nhóm với người biểu diễn độc tấu

Đánh giá các câu

  • “Một nhóm được tạo thành từ một hoặc nhiều SoloPerformers

  • Một người chơi SoloPerformer có thể là thành viên của nhiều Nhóm hoặc không có Nhóm nào ,

người ta có thể nhận ra rằng cả hai kiểu con có liên quan đến một hiệp hội (hoặc mối quan hệ) nhiều (M: N), mà tôi đại diện với hộp hình kim cương được dán nhãn là Group-SoloPerformer.

Nếu thực hiện trong một quan hệ cơ sở dữ liệu như một cơ sở bảng, thành phần này sẽ rất hữu ích để lấy được (ví dụ, để thực hiện việc tính toán) tổng Numbercủa SoloPerformersmà làm lên một bê tông Group(một trong những yêu cầu mà bạn chỉ định).

Sự kết hợp giữa Người biểu diễn và Nhạc cụ Solo

Quy định

  • Một người chơi SoloPerformer [V] có thể chơi một hoặc nhiều nhạc cụ

cho phép chúng tôi suy luận rằng, đồng thời,

  • Một nhạc cụ được chơi bằng 0, một hoặc nhiều SoloPerformers.

Vì vậy, đây là một ví dụ khác về liên kết M: N và tôi đã sử dụng hình dạng kim cương được chỉ định SoloPerformer-Instrumentđể phơi bày nó.

Tài liệu bổ sung

Để giải thích phạm vi của các cấu trúc siêu kiểu, tôi sẽ bao gồm thêm hai tài nguyên, nghĩa là,

  1. một sơ đồ IDEF1X 4 được trình bày trong Hình 2 ( và bạn cũng có thể tải xuống từ Dropbox dưới dạng PDF ) để minh họa các khả năng biểu cảm của loại sơ đồ này liên quan đến lĩnh vực kinh doanh; và

  2. cấu trúc logic DDL của kho lưu trữ tương ứng minh họa cách quản lý toàn bộ kịch bản đang thảo luận nhờ vào hệ thống quản lý cơ sở dữ liệu SQL.

1. Đại diện IDEF1X

Kỹ thuật mô hình hóa thông tin IDEF1X chắc chắn cung cấp khả năng mô tả các cấu trúc siêu kiểu phụ, mặc dù có một hạn chế: nó không cho vay một cơ chế trực quan để chỉ ra một cụm chính xác là loại độc quyền hay không bao gồm (các ký hiệu biểu tượng gốc của nó chỉ có thể giao tiếp các hoàn chỉnh hoặc không đầy đủ xác định tất cả các loại subentity có thể có ý nghĩa). May mắn thay, người ta có thể sử dụng ký hiệu Kỹ thuật thông tin (IE) để hiển thị khía cạnh tối quan trọng này chính xác hơn trong khi tận dụng sức mạnh mô tả của tiêu chuẩn IDEF1X.

Trong kỹ thuật này, tính năng chính của câu hỏi của bạn là mối quan hệ phân loại có mệnh giá là phạm vi, trong đó một siêu kiểu được gọi là thực thể chung chung và một tiểu loại nhận được tên của thực thể thể loại Khăn. Tuy nhiên, tôi sẽ tiếp tục áp dụng thuật ngữ supertype-subtype trong bài đăng này bởi vì (1) nó được sử dụng bởi Tiến sĩ Edgar Frank Codd, người khởi tạo mô hình quan hệ, (2) nó được biết đến rộng rãi hơn và (3) ký hiệu IE là được sử dụng thay vì một trong những người bản địa.

Sơ đồ nghệ sĩ âm nhạc IDEF1X

Khóa ngoại và cụm siêu kiểu

Như đã trình bày, IDEF1X cung cấp một lợi thế hơn nữa: phương tiện để thể hiện các định nghĩa FOREIGN KEY (FK), các yếu tố có tầm quan trọng hàng đầu nếu một học viên sẽ đại diện cho một hiệp hội siêu kiểu phụ trong cơ sở dữ liệu quan hệ .

Để mô tả một kiểu kết hợp như vậy, thuộc tính PRIMARY KEY (PK) của siêu kiểu, nghĩa là Artist.ArtistNumber, phải di chuyển đến GroupSoloPerformer, mặc dù nó đã được chỉ định hai khác nhau vai trò tên 5, 6 , GroupNumberSoloPerformerNumbertương ứng, với mục đích nhấn mạnh các ý nghĩa được truyền đạt bởi các bất động sản trong bối cảnh của từng loại subentity.

Ngoài việc được đặc trưng là PK, đồng thời, các thuộc tính Group.GroupNumberSoloPerformer.SoloPerformerNumberđược mô tả là các NGOẠI TỆ (FK) tạo tham chiếu đến Artist.ArtistNumberthuộc tính PK siêu kiểu.

Vì vậy, vì mỗi SoloPerformerGroupxảy ra là sự tồn tại phụ thuộc vào một chính xác ArtistVí dụ, các loại thực thể được tham gia vào một hiệp hội xác định rằng có hiệu lực bằng cách của quá trình chuyển đổi sở hữu PK khoanh tại các khoản trên.

Khóa ngoại và các loại thực thể liên kết

Biểu đồ IDEF1X cũng phục vụ để minh họa các FK tạo thành PK của hai loại thực thể liên quan có liên quan, nghĩa là, GroupMemberSoloPerformerInstrument; cái thứ nhất kết nối hai kiểu con và cái thứ hai liên kết một kiểu con với một loại thực thể độc lập, nghĩa là , Instrument.

2. Khai báo logic SQL-DDL phơi bày

Như đã giải thích trước đây, cấu trúc siêu kiểu là một phương tiện để thể hiện một số loại khái niệm cụ thể theo miền kinh doanh liên quan đến các yêu cầu thông tin, có thể lần lượt được trình bày trong cơ sở dữ liệu bằng các cấu trúc riêng biệt phải tương ứng với các cấu trúc được cung cấp bởi cụ thể mô hình lý thuyết (có thể là quan hệ, mạng hoặc phân cấp) theo sau là hệ thống quản lý cơ sở dữ liệu đang được nhà thiết kế sử dụng.

Một trong nhiều ưu điểm của mô hình quan hệ là nó cho phép biểu diễn thông tin trong cấu trúc tự nhiên của nó và các xấp xỉ phổ biến nhất cho các hệ thống được đề xuất trong lý thuyết quan hệ là các hệ thống quản lý cơ sở dữ liệu SQL khác nhau.

Vì vậy, cuối cùng, đây là một số câu lệnh DDL mẫu Các lược đồ bảng cơ sở (a) cùng với (b) một số ràng buộc thích hợp mà biểu thị, ở mức độ trừu tượng hóa, bài tập mô hình hóa khái niệm được xử lý ở trên:

--
--
CREATE TABLE Artist ( -- Stands for the supertype.
    ArtistNumber    INT      NOT NULL,
    Name            CHAR(30) NOT NULL,
    Type            CHAR(1)  NOT NULL, -- Holds the discriminator values.
    CreatedDateTime DATETIME NOT NULL,
    --
    CONSTRAINT Artist_PK      PRIMARY KEY (ArtistNumber),
    CONSTRAINT Artist_AK      UNIQUE      (Name), -- ALTERNATE KEY.
    CONSTRAINT Artist_Type_CK CHECK       (Type IN ('G', 'S')) -- Enforces retaining either ‘G’, for ‘Group’, or ‘S’, for ‘SoloPerformer’, only.
);

CREATE TABLE MyGroup ( -- Represents one subtype.
    GroupNumber   INT  NOT NULL, -- To be constrained as PK and FK simultaneously.
    FormationDate DATE NOT NULL,
    --
    CONSTRAINT MyGroup_PK         PRIMARY KEY (GroupNumber),
    CONSTRAINT MyGroupToArtist_FK FOREIGN KEY (GroupNumber)
        REFERENCES Artist (ArtistNumber)  
);

CREATE TABLE SoloPerformer ( -- Denotes the other subtype.
    SoloPerformerNumber INT  NOT NULL, -- To be constrained as PK and FK simultaneously.
    BirthDate           DATE NOT NULL,
    --
    CONSTRAINT SoloPerformer_PK               PRIMARY KEY (SoloPerformerNumber),
    CONSTRAINT SoloPerformerNumberToArtist_FK FOREIGN KEY (SoloPerformerNumber)
        REFERENCES Artist (ArtistNumber)  
);

CREATE TABLE GroupMember ( -- Stands for a M:N association involving the two subtypes.
    MemberNumber INT  NOT NULL,
    GroupNumber  INT  NOT NULL,
    JoinedDate   DATE NOT NULL,
    --
    CONSTRAINT GroupMember_PK                PRIMARY KEY (MemberNumber, GroupNumber), -- Composite PK.
    CONSTRAINT GroupMemberToSoloPerformer_FK FOREIGN KEY (MemberNumber)
        REFERENCES SoloPerformer (SoloPerformerNumber),
    CONSTRAINT GroupMemberToMyGroup_FK       FOREIGN KEY (GroupNumber)
        REFERENCES MyGroup       (GroupNumber)  
);

CREATE TABLE Instrument ( -- Represents an independent entity type.
    InstrumentNumber INT      NOT NULL,
    Name             CHAR(30) NOT NULL,
    --
    CONSTRAINT Instrument_PK PRIMARY KEY (InstrumentNumber),
    CONSTRAINT Instrument_AK UNIQUE      (Name) -- ALTERNATE KEY.  
);

CREATE TABLE SoloPerformerInstrument ( -- Denotes another M:N association, in this case between a subtype and an independent entity type.
    SoloPerformerNumber INT  NOT NULL,
    InstrumentNumber    INT  NOT NULL,
    CreatedDate         DATE NOT NULL,
    --
    CONSTRAINT SoloPerformerInstrument_PK                PRIMARY KEY (SoloPerformerNumber, InstrumentNumber), -- Composite PK.
    CONSTRAINT SoloPerformerInstrumentToSoloPerformer_FK FOREIGN KEY (SoloPerformerNumber)
        REFERENCES SoloPerformer (SoloPerformerNumber),
    CONSTRAINT SoloPerformerInstrumentToInstrument_FK    FOREIGN KEY (InstrumentNumber)
        REFERENCES Instrument    (InstrumentNumber)  
);
--
--

Tính toàn vẹn và thống nhất dữ liệu

Để phù hợp với tất cả những gì đã được giải thích trước đó, nhà thiết kế phải đảm bảo rằng mỗi hàng Supertype siêu tốc của mọi lúc bổ sung bởi kèm theo “Loại” người đồng nhiệm của mình và ngược lại, chắc chắn rằng những gì đã nói “Loại” hàng là tương thích với các giá trị chứa trong cột supertype người phân biệt đối xử trực tuyến.

Sẽ rất thực tế và tao nhã khi thực thi các trường hợp đã tuyên bố (như khung quan hệ đề xuất), nhưng, than ôi, không có nền tảng SQL chính nào cung cấp các cơ chế phù hợp để làm như vậy (theo như tôi biết). Do đó, rất thuận tiện để sử dụng GIAO DỊCH ACID để các điều kiện này luôn được đáp ứng trong cơ sở dữ liệu (tùy chọn khác là sử dụng TRIGGERS, nhưng chúng có xu hướng làm cho mọi thứ không gọn gàng).

Xem xét phái sinh dữ liệu

Một trong những khía cạnh chính của mô hình quan hệ là nó coi dẫn xuất dữ liệu là một yếu tố tối quan trọng trong quản lý dữ liệu. Theo, nó tạo điều kiện tạo (a) cơ sở quan hệ -Hoặc cơ sở bảng trong SQL, như thể hiện trong các báo cáo DDL above- và (b) có nguồn gốc quan hệ - có nguồn gốc bảng trong SQL, ví dụ, những tuyên bố do dint SELECT hoạt động mà bạn có thể cố định như quan điểm để tiếp tục khai thác.

Vì vậy, người ta có thể tuyên bố một chế độ xem tập hợp các điểm dữ liệu của Nhóm đầy đủ của Nhóm :

CREATE VIEW FullGroup AS
    SELECT G.GroupNumber,
           A.Name,
           A.CreatedDateTime,
           G.FormationDate
         FROM Artist A
         JOIN MyGroup G 
           ON G.GroupNumber = A.ArtistNumber;

Và một góc nhìn khác kết hợp các thông tin đầy đủ của Solo Solo SoloPerformer :

CREATE VIEW FullSoloPerformer AS
    SELECT SP.SoloPerformerNumber,
            A.Name,
            A.CreatedDateTime,
           SP.BirthDate
         FROM Artist A
         JOIN SoloPerformer SP 
           ON SP.SoloPerformerNumber = A.ArtistNumber;

Theo cách này, rất dễ dàng để thao tác với tất cả các dữ liệu quan trọng thông qua cùng một thiết bị ở mức logic, nghĩa là mối quan hệ hoặc bảng (có thể là cơ sở hoặc dẫn xuất). Rõ ràng, việc sử dụng các khung nhìn hiệu quả hơn khi các loại thực thể khái niệm được biểu thị trong cơ sở dữ liệu quan hệ có nhiều thuộc tính quan tâm hơn, nhưng đó là một khả năng đáng để minh họa với kịch bản hiện tại.


Người giới thiệu

1 Codd, EF (tháng 12 năm 1979). Mở rộng mô hình quan hệ cơ sở dữ liệu để nắm bắt nhiều ý nghĩa hơn , các giao dịch ACM trên các hệ thống cơ sở dữ liệu , Tập 4 Số 4 (trang 397-434). New York, NY, Hoa Kỳ.

2 Chen, PP (tháng 3 năm 1976). Mô hình mối quan hệ thực thể Hướng tới một cái nhìn thống nhất về dữ liệu , Giao dịch ACM trên các hệ thống cơ sở dữ liệu - Vấn đề đặc biệt: Các bài viết từ Hội nghị quốc tế về cơ sở dữ liệu rất lớn: 22 tháng 924, 1975, Framingham, MA , Tập 1 Số 1 (Trang 9-36). New York, NY, Hoa Kỳ.

3 Elmasri, R & Navedit, SB (2003). Nguyên tắc cơ bản của hệ thống cơ sở dữ liệu , phiên bản thứ tư. Công ty xuất bản Addison-Wesley Longman, Boston, MA, Hoa Kỳ.

4 Viện Tiêu chuẩn và Công nghệ Quốc gia (Hoa Kỳ) [NIST] (tháng 12 năm 1993). Định nghĩa tích hợp cho mô hình hóa thông tin (IDEF1X), Xuất bản tiêu chuẩn xử lý thông tin liên bang , Tập 184. Hoa Kỳ.

5 Codd, EF (tháng 6 năm 1970). Một mô hình dữ liệu quan hệ cho các ngân hàng dữ liệu chia sẻ lớn , truyền thông của ACM , Tập 13 Số 6 (trang 377-387). New York, NY, Hoa Kỳ.

6 Xem tài liệu tham khảo 4


4

Câu trả lời của MDCCL rất hấp dẫn, mang tính giáo dục và có lẽ đúng (mặc dù cao hơn mức lương của tôi).

Ngược lại, tôi diễn giải lại Câu hỏi và quay lại những điều cơ bản để có giải pháp đơn giản nhất có thể. Có lẽ tôi đang gian lận và không thực sự trả lời được Câu hỏi nhưng dù sao đi nữa.

Tôi đã bối rối khi đọc và đọc lại Câu hỏi. Khi nhìn thấy thuật ngữ "Nghệ sĩ", tôi cứ nghĩ về từng người. Nhưng không, nó có nghĩa là "ghi nhãn thương hiệu nghệ thuật", giống như một album thu âm âm nhạc có một tiêu đề và một "nghệ sĩ" cho dù nghệ sĩ là một cá nhân như Johnny Cash hay một nhóm như The Cure .

Hãy lấy một ví dụ về nghệ sĩ bây giờ được gọi là Hoàng tử . Anh ấy đã xuất bản album như:

Tất cả bốn trong số đó sẽ là ví dụ của "Nghệ sĩ". Đặc biệt, có hai người phụ nữ, Wendy Melvoin và Lisa Coleman, trong ban nhạc The Revolution nhưng không thuộc New Power Generation , đã rời đi để tiếp tục sự nghiệp dưới thương hiệu Wendy & Lisa .

Vì vậy, chúng ta sẽ có một ví dụ khác về "Nghệ sĩ" với Wendy & Lisa trong khi các cá nhân Melvoin và Coleman mỗi người sẽ là những người biểu diễn chứ không phải là "Nghệ sĩ". Những người phụ nữ cá nhân đó sẽ được chỉ định làm Người biểu diễn cho hai "Nghệ sĩ" ((1) Hoàng tử & Cuộc cách mạng , (2) Wendy & Lisa ).

Sơ đồ sau đây là một nỗ lực vụng về trong việc hiển thị dữ liệu ví dụ này theo kiểu nhỏ gọn. Chúng tôi cho thấy hai người phụ nữ được gạch chân (Người biểu diễn) thuộc hai nhóm khác nhau (Nghệ sĩ). Và chúng tôi cho thấy người đàn ông in nghiêng, Prince, thuộc bốn ban nhạc (Nghệ sĩ) nhưng không thuộc về ban nhạc cuối cùng (Nghệ sĩ).

nhập mô tả hình ảnh ở đây

Nếu điều đó mô tả miền doanh nghiệp, thì tôi sẽ đề xuất thiết kế bảng sau (và ERD).

Sơ đồ thiết kế bảng của Nghệ sĩ, Thành viên, Người biểu diễn, Người chơi, Nhạc cụ

Về cơ bản chúng ta có một cặp mối quan hệ Nhiều-Nhiều:

  • Một nghệ sĩ (dù là độc tấu hay một ban nhạc) là một hoặc nhiều Người biểu diễn được chỉ định. Và Người biểu diễn có thể là thành viên của một hoặc nhiều "Nghệ sĩ" / ban nhạc.
  • Người biểu diễn có thể chơi một hoặc nhiều nhạc cụ. Và mỗi Nhạc cụ có thể có nhiều Người biểu diễn được liệt kê là có khả năng chơi nó.

Đối với "Nhóm" và "SoloPerformer":

  • "Solo" chỉ là bất kỳ "Nghệ sĩ" nào chỉ có một "Người biểu diễn" được chỉ định.
    (Chỉ có một bản ghi con trong bảng Thành viên có ID Nghệ sĩ được gán làm khóa ngoại.)
  • "Nhóm" là bất kỳ "Nghệ sĩ" nào có nhiều "Người biểu diễn" được chỉ định.
    (Hai hoặc nhiều hồ sơ con trong bảng Thành viên có ID Nghệ sĩ được gán làm khóa ngoại.)

Nếu một phần của logic nghiệp vụ là phân biệt giữa các mục Nghệ sĩ là Solo vs Group, thì trong SQL chúng ta có thể thực hiện các truy vấn cho các hàng Nghệ sĩ chỉ có một bảng Thành viên so với các mục có nhiều thành viên. Nhưng thực tế mà nói, có lẽ có ý nghĩa để không chuẩn hóa thông tin này bằng cách:

  • Thêm Boolean "Solo / Group" trên bảng Artist và
  • Thực thi thành viên đơn / nhiều thành viên này trong (các) ứng dụng.

Nếu mục tiêu của Câu hỏi là thực thi phân biệt Solo so với Nhóm trong cấu trúc cơ sở dữ liệu (hoặc ERD), thì tôi đã thất bại. Nhưng dù bằng cách nào, tôi hy vọng Câu trả lời này có thể chứng minh thú vị và hữu ích.


Phối cảnh rất tốt
Pmpr 15/2/2016

2

Câu trả lời từ MDCCL là một bản tóm tắt tuyệt vời về các khái niệm đằng sau siêu lớp / lớp con hoặc khái quát hóa / chuyên môn hóa như được mô tả ở cấp độ EERD.

Câu trả lời này nhằm chỉ ra ba mẫu thiết kế hoặc kỹ thuật đáng để biết khi đến lúc biến EERD thành một thiết kế quan hệ, dựa trên các bảng được xác định với các cột được xác định.

Đây là ba:

  • Kế thừa lớp đơn
  • Kế thừa bảng lớp
  • Khóa chính được chia sẻ

Hai cái đầu tiên là lựa chọn thay thế, một là tốt cho các trường hợp đơn giản trong đó hầu hết tất cả các dữ liệu liên quan đến siêu lớp. Cái thứ hai phức tạp hơn, nhưng có thể hoạt động tốt hơn khi nhiều dữ liệu liên quan đến một số lớp con. Từ "Kế thừa" được sử dụng để chỉ ra rằng thiết kế cung cấp một số sức mạnh biểu cảm tương tự mà sự kế thừa sẽ cung cấp trong một mô hình đối tượng.

Khóa chính được chia sẻ là một kỹ thuật trong đó các mục trong bảng lớp con có thể có được danh tính bằng cách "kế thừa" danh tính của mục tương ứng trong bảng siêu lớp.

Trong SO, có ba thẻ với những tên này. Tab Thông tin bên dưới mỗi thẻ cung cấp một mô tả và có nhiều câu hỏi được nhóm lại dưới các thẻ.

Ngoài ra còn có rất nhiều trang web trình bày các kỹ thuật này. Tôi đề nghị những người từ Martin Fowler. Tôi thích cách anh ấy trình bày nó. Dưới đây là một vài trang web:

Bảng kế thừa đơn lớp Kế thừa bảng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.