ER Diyagramlarının Önemi


10

Ben öğrenciyim ve akademimin bir parçası olarak çeşitli projeler geliştiriyorum.

Projelerden biri için veritabanını geliştirirken, ERD'nin gerekli olup olmadığını düşündüğümüz bir durumla karşılaştık. Şu anda, her birimiz önce ERD'yi geliştirmek ve sonra ondan veritabanı geliştirmek konusunda hemfikir değiliz.

İnsanların çoğu doğrudan kağıt üzerinde sistem gereksinimlerine göre veritabanını anında sözlü olarak geliştirmeyi tercih ediyor.

Şimdi, Veritabanı ilkelerinin sıkı takipçisiyim. Bence veritabanı sadece ERD'den geliştirilmeli. Yani, sadece aşağıdakileri bilmek istiyorum:

  • Endüstri bu ilkelere uyuyor mu?
  • Bir ERD geliştirmek için zamanımı mı harcıyorum?
  • ERD geliştirmenin faydaları nelerdir?

ER / EER diyagramı varlıklar arasındaki ilişkileri gösterir ve aynı zamanda sistem işlevselcilerini de büyütür.

SQL Server için ERD yapmak için ücretsiz bir araç istiyorsanız ... Bilgi burada bulunabilir ... facebook.com/DataModelerTool veya burada ... plus.google.com/108968161662966473138
Carter Medlin

IMHO, ERD'ler önemli olan her şeyi yakalamamaktadır - zamanla ilişkide değişiklikler, işlem hacmi, nesne modelli sistemlerde kalıtım, "bir" ilişkiler vb. Haline gelir. İsimlerden başka bir şey olmayan bir roman okuduğunuzu düşünün. Yararlı araçlar olduğunu düşünüyorum, ama kesinlikle kritik değil, en iyi güzel bir öğle yemeğinden sonra peçetelerin sırtına çizildi.
pojo-guy

Yanıtlar:


13

Basit ve basit, ERD'siz bir veri tabanı geliştirmeyi, inşaat planı olmayan bir ev inşa etmeyi düşünün. Bu yapılabilir çünkü bir şeyi inşa etmek için sadece bir tuğla döşemenin yeterli olduğunu düşünüyorsunuz, ancak bir başkası proje üzerinde sorumluluk aldığında afet potansiyeli var.

Deneyimlerime göre, ileri ve geri mühendislik gibi gerçekten yararlı işlemler gerçekleştirmenize izin verecek olan CASE araçları (ERWin, MySQL Workbench vb.) İle birlikte kullanmazsanız ERD'lerden çok fazla faydalanmayacaksınız. Bu işlevler olmadan bile, tam veritabanının merkezi bir şemasına sahip olmak yararlıdır, çünkü bazen veritabanında uygulanan kısıtlamalar, belirli veritabanı varlıkları arasındaki ilişkiler hakkındaki tüm hikayeyi anlatmak için yeterli değildir.

İşte bildiğiniz gibi, başta MyISAM ve InnoDB olmak üzere birçok dahili depolama motorunu uygulayan MySQL'i içeren bir örnek. Aralarında en önemli olanlardan biri de MyISAM'ın kısıtlamaları desteklememesidir. Buna rağmen MyISAM, web uygulamaları için yoğun bir şekilde kullanılmaktadır, bu da ilişkisel mantığın iş mantığı (uygulama kodu) veya başka bir şekilde uygulanması gerektiği anlamına gelir. Sorun, bir ERD'yi MyISAM tabloları (varlıkları) ile ilettiğinizde MySQL, ERD tarafından belirlenen kısıtlamaları sessizce göz ardı edecek ve varlıklar arasındaki ilişkilerin doğasını açıkça tanımlamayan bir veritabanı ile sonuçlanacaktır. Başka bir deyişle, veritabanı düzenini geliştirdikten sonra, kod geliştiricilerinin bir ERD olmadan uygun iş mantığını uygulamasının bir yolu yoktur.


1
"Bina planı" karşılaştırmanızla sonuna kadar gidersek, bir sistem inşa etmeliyiz ve her şeyi yıkmamız gerekmediği sürece onu asla değiştiremeyiz. Bu dinamik bir ortamda işe yaramayacak.
AK

1
"Bina planının" amacı, geliştirme sürecini veya projenin kendisini güçlendirmek değil, her zaman mevcut projenin bulunduğu duruma genel bir bakış sağlamaktır. Aslında hiç kimse yeni varlıklar veya ilişkiler eklemekten alıkoymuyor (dolayısıyla planda değişiklikler yapıyor), ancak başkalarının da bu değişiklikleri bilmesi gerekiyor.
brezanac

5

ERD'ler veritabanı yapınızın net bir resmine sahip olmak gerçekten güzel. Projeniz için önemli bir belge artefaktı olmasının yanı sıra, sorguları, özellikle tablolar arasında birleştirmeleri gerektiğinde kolaylaştırır. Çift monitör yapılandırmasına sahip olmanın ne kadar güzel olduğunu hayal edin, sol tarafta ERD'niz ve sağ tarafta sorgu düzenleyiciniz var. Tablolar arasındaki ilişkileri açıkça görebilir ve sorgularınızı buna göre yazabilirsiniz. Veritabanı projeniz oldukça basitse ve projeniz gerektirmiyorsa, belki de onsuz yaşamak sorun olmaz.


4

ERD düşündüğünüzden çok daha fazla zaman kazandıracak, Her şeyi anında yaparsanız, bağlantı tabloları oluşturmak istediğinizde sıkışacaksınız.

Birkaç yıl sonra ERD olmadan veritabanına rastlarsanız, projenizde neler olduğunu görmek için çok zaman harcamanız gerekir.

Şirketim var ve ERD tasarlıyoruz, ERD olmadan veritabanı düşünmeyin. (Aslında bu benim kendi kişisel denemem)


4

ERD'ler bir süre önce daha yaygındı. IMO artık az çok isteğe bağlı.

Şu anda, bazı son derece başarılı takımlar ERD'lerle hiç uğraşmıyor, ancak mükemmel sistemler sunuyor: sağlam, performans ve uzun vadede bakımı kolay. Bu özellikle küçük başladığımızda minimalist bir araç seti ile Çevik gelişim için geçerlidir.

ERD'ler elbette iyi bir iletişim yoludur, ancak hiçbir şekilde tek yol veya her koşulda en iyisi. Bazı ekipler diğer dokümantasyon ve iletişim yollarını tercih ederler.

Bu endüstride battaniye kuralı yok.


+1 ancak veritabanları ile ilgili dokümantasyon ve iletişim için başka hangi yollar kullanılır?
miracle173

@ miracle173 İyi bir kitap: "C # 'da Çevik Prensipler, Desenler ve Uygulamalar". Ayrıca dannorth.net
AK

1
Ne demek istiyorsun some teams prefer other ways? Ben bu yığın aşağı oy ile bitmiş olabilir düşünüyorum Eğer Stackoverflow bir cevap olarak gönderildi!
Pmpr

2

Üretim kodunu yazmadan önce tasarlamak önemlidir. Prototip oluşturmak da önemlidir; veritabanı insanları SQL yazarak prototip geliştirir. (Fred Brooks'un prototipler hakkında söylediklerini hatırlıyor musunuz?)

ER'si sadece bir olan grafik dillerinin, bir veritabanının tüm anlambilimini, anlaşılması kolay ve basit bir şekilde yakalamada çok iyi olduğu kanıtlanmamıştır.

Geliştiriciler arasında çok etkili iletişim araçları oldukları da kanıtlanmadı. Ancak veritabanlarını tasarlarken, önemli iletişim geliştiriciler arasında değildir; geliştiriciler ve alan adı uzmanları (geliştiriciler ve iş adamları arasında) arasındadır.

Nesne-Rol Modellemesi (ORM) grafiksel bir dile sahiptir, ancak "gerçeklere" (basit cümleler) dayanmaktadır. İş adamları gerçekleri kolayca doğrulayabilir. İş adamları olamaz kolayca ER diyagramı veya bir ORM diyagramı doğrulamak.


1
+1 ama grafik dilleri kullanarak iletişim problemleri hakkındaki iddialarınızı destekleyen rakamlar veya çalışmalar biliyor musunuz?
miracle173

Akademisyen değilim, bu yüzden araştırmayı yakından takip etmiyorum. Bir veritabanının tüm anlambilimini (örneğin bir ERD) yakalayamayan bir grafik dil, tüm anlambilimi açık bir şekilde iletişim kuramaz; bu Terry Halpin'in araştırmasının bir parçası. Alan adı uzmanlarıyla iletişim kurduğunuz sürece bunun için araştırmaya ihtiyacınız yoktur. Sadece 8. sınıf eğitimi olan bir alan uzmanına bir ER diyagramı açıklamaya çalışmanız gerekir. Daha sonra bu deneyimi, "Her adresin bir ve sadece bir posta kodu vardır" ifadesini açıklamaya çalışırken karşılaştırın. Cümle her seferinde kazanır.
Mike Sherrill 'Cat Recall'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.