PDA

View Full Version : قواعد نرمالسازی



mojtaba.baghban
شنبه 28 شهریور 1388, 17:45 عصر
این جداول را در نظر بگیرید

create table book
(
isbn varchar(13) primary key not null,
title varchar(50) not null,
availablity bit not null
)


create table member
(
memberID varchar(10) primary key not null,
fname varchar(20) not null,
lname varchar(20) not null
)


create table amanatgiri
(
amanatID int identity(1,1) primary key not null,
memberId varchar(10) references member(memberID)not null,
isbn varchar(13) references book(isbn) not null,
tarlkheAmanat date not null,
terikhebazgasht date null,
takhir smallint null
)

آیا از قواعد نرمالسازی پیروی می کنند ضمن اینکه تاخیر باید با توجه به جدول دیگری به روز شود

mojtaba.baghban
یک شنبه 29 شهریور 1388, 12:21 عصر
یکی جواب بده

محمد سلیم آبادی
یک شنبه 29 شهریور 1388, 12:41 عصر
سلام، قبلا یکمی روی طراحی جداول مربوط به سیستم امانی کتابخانه کار کرده بودم شاید بتونه کمکت کنه
http://www.barnamenevis.org/forum/attachment.php?attachmentid=32912&d=1247086536

mojtaba.baghban
یک شنبه 29 شهریور 1388, 13:20 عصر
شما که رو این مقوله کار کردین ستونی که در جدول book وجود دارد که نشاندهنده این است که آیا کتاب موجود است یا نه بستگی به جدول borrow دارد آیا این با قواعد نرمالسازی در تضاد نیست؟

محمد سلیم آبادی
یک شنبه 29 شهریور 1388, 14:03 عصر
ما یک جدول داریم برای ذخیره لیست کل کتابهای کتابخانه از کتابهای موجود تا آنهایی که موجود نیستند (به امانت رفتند)
یک جدول ام داریم برای لیست امانت ها که چون ممکن است هر امانتی شامل چند کتاب باشد از یک جدول junction استفاده کردم.
و برای گزارش گیری ها متعدد از جمله مشخص کردن لیست کتب به امانت رفته و زمان تحویل آنها و ... از ویوهای متعددی استفاده می کنیم.

چند قاعده معمول نرمالسازی می گن که در بانک نباید افزونگی داده وجود داشته باشد نباید ناهنجاری در درج یا ویرایش یا حذف داشته باشیم که در این طراحی فکر نمی کنم این قوانین زیر سوال رفته باشند.

بهنام بهمنی
دوشنبه 30 شهریور 1388, 09:15 صبح
فيلد availablity اگر به مفهوم امانت رفتن و يا نرفتن اطلاعات است, چون اين مفهوم از روي جدول ارتباط قابل فهم است, به مفهوم افزونگي اطلاعات است.

البته همواره لزومي به رعايت قوانين نرمالسازي نيست, بطور مثال اگر براي تهيه يک داده نياز به بيش از 4 چهار join باشد, شما مي توانيد , قواعد نرمالسازي را نقض کنيد.

-توجه شود, اين موضوعات مطلق نيست و شما با توجه به شرايط بايد تصميم بگيريد.