· Part C Entity Relationship Diagram
Represent the following case study problem by means of an Entity Relationship model.
Regional Gardens Case Study
Regional Gardens Ltd is a company that runs a number of related gardening enterprises. It has a large display garden that it opens for public inspection a number of times a year. The company also owns the Regional Gardens Nursery which sells plants and garden supplies to the public as well as providing garden advice, design and consultancy services. The directors of Regional Gardens Ltd have decided that they need to modernise their business and finally install a database system to keep track of the design and consultancy aspects of their nursery business. You have been engaged to design the database for their garden design business.
The garden design and consultancy service gathers a number of facts from their clients. These details include the details of the client’s block of land, its features, structures and vegetation. The designer then determines what the client is looking for in their garden plan. This could include features, such as paths, water features, rock gardens, etc. They should also be able to plan for structures, such as patios, terraces, fences, walls, etc. Both features and structures should be able to have their final size and shape adjusted when added to the garden plan. The plan should also be able to access the list of plants and shrubs that are usually available from the Regional Gardens Nursery.
Tasks:
1. Draw a normalised complete EERD for the Regional Gardens Nursery database.
2. Describe all the attributes and keys required for the Regional Gardens Nursery database within the completed EERD.
Notes:
Your EERD should describe how you see the design and implementation of this database. Use the MySQL 5.2 Workbench Modeller to produce the normalised and complete EERD.
State any assumptions that you make. However any assumptions that are made must be consistent with the assignment problem.
해석
파트C. ERD 다이어그램
사례
Regional Garden Ltd 는정원디자인에관련된일을하는업체입니다. 이업체는1년에여러차례오픈하는커다란정원모델을가지고있습니다. 이업체는또한Regional Gardens Nursery라는이름의정원디자인/컨설턴트자회사또한운영하는데, 이자회사는각종식물들과정원관리용기구들을판매하는한편정원관리에대한어드바이스도제공하고있습니다. Regional Gardens Ltd의임원들은자신들의회사를더욱현대화하는한방안으로써, 새로운데이터베이스시스템을구축하여그들의디자인/컨설턴트자회사의현황을파악하고자합니다. 당신은이회사를위해새로운데이터베이스시스템을구축해야합니다.
이업체는정원디자인서비스와컨설턴트서비스를이용하여의뢰인들의정보들을수집합니다. 의뢰인들의사유지정보, 정원에이미설치된기구들과식물의종류들이여기에포함됩니다. 그후, 디자이너는해당의뢰인이자신의정원에정확하게무엇을더재배혹은설치하고싶어하는지를알아냅니다(정원길, 정원수(water), 정원바위등). 그런후에디자이너들은테라스나울타리, 벽등을어떻게구축할지도결정합니다. 이런정보들은모두정원계획(Garden Plan)에포함되어야합니다. 이정원계획에는이회사에서판매하는식물(plant)들과관목(shrub)들의리스트도포함돼야합니다.
과제:
1. 위사례에적합한정규화된EERD를그리세요.
2. 위의사례에따라데이터베이스를구축할때필요한속성(attribute)들과키(key)들에대해설명하세요.
주석:
만들어진EERD는위의사례에대한당신의관점(이사례를어떻게바라보고있는지) 을잘보여줘야합니다. MySQL 5.2 Workbench Modeller를사용하여위사례를정규화(normalize)하고EERD를완성하세요.
과제를하면서추정한가설들을같이언급해야합니다. 하지만이가설들은위의사례에서벗어나면안됩니다.
위에 임의로 그린 ERD에 대해서 조금 설명을 덧붙이자면
Client_land 엔티티는 의뢰인의 땅 정보를 저장하는 엔티티야.
Land_feature 엔티티는 의뢰인의 정원에 이미 설치된 정원기구/식물 등을 저장하는 엔티티야.
Client_need 엔티티는 파견된 디자이너(정원사)가 의뢰인이 무엇을 원하는지를 파악하여 기록하는 엔티티야.
Plan 엔티티는 주문을 받고 계획에 착수하기 위한 엔티티이기 때문에 FK인 디자이너 아이디와 클라이언트 아이디를 넣었어.
Order, Order_line, Item, Item_type 엔티티는 제가 부족한 지식으로 어떻게든 '이정원계획에는이회사에서판매하는식물(plant)들과관목(shrub)들의리스트도포함돼야합니다.' 이 항목을 만족시키기 위해서 노력해본 결과이지만 전혀 제대로 돼 보이지가 않네. 본문 내용을 보면 Plan 엔티티에서는 이회사에서 판매하는 식물들과 관목들의 리스트를 볼 수도 있고 플랜에 포함시켜 주문도 가능해야 하는것 같아.
위는 아직 데이터베이스를 배운지 얼마 되지 않는 이해도로 대략 그려본 ERD인데 전혀 제대로 하고
있다는 느낌이 들지 않네... 조언 좀 줄 수 있는 횽님 없을까?

몇가지 힌트: client entity 에서 client_name 이라고 하는건 1st normalization을 위반함. client_name can be decomposed into clientFirstName & clientLastName.
associative entities like Order 는 1-to-m 혹은 0-to-m 이여야됨. 0 to 1 means the entity is an optional entity 즉 associative entity 가안됨
client need 라는건 필요없음 Regional Garden 가 ㄴ운영하는건 selling gradening supplies, nursery consultancy and etc. 그냥 client buys garden supplies, client orders designconsultancy 등등 하면 끝임
그리고 relation name 이 있어야됨. order is also a relation name. for examples sell, acquire
기만자보소 ..
또한 order line 에서 order qty 와 order price 는 functional dependency 과계임. 그러므로 2nf 에 위반됨.
그이유를 더하자면 order price can be derived from order qty * item (or product) in relation that has a price
Kyle횽 고마워요! 그럼 이름들은 전부 firstname과 lastname으로 나누고
Client Need라는 엔티티는 없애고 대신 Plan 엔티티에 Plan_description 같은걸로 대체할게요
Order_line의 order_line_price는 삭제함
associative entities like Order 는 1-to-m 혹은 0-to-m 이여야됨. 0 to 1 means the entity is an optional entity 즉 associative entity 가안됨 부분 이해하려고 노력중
전부 이해하지 못하는게 안타깝지만 책 다시 읽어보면서 최대한 노력해보겠습니다. 조언 정말 감사해요!