Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 02:02 01.07.24 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
Тема Pitaneнови  
АвторSystem (Нерегистриран)
Публикувано24.02.03 11:45



1. Kak se suzdavat 'Relationships' v MySQL mejdu tablitcite?
2. MySQL poddurja li vlojeni zaiavki?
3. А тригери и съхранени функции



Тема Re: Pitaneнови [re: System]  
Авторbaj L\bo (Нерегистриран)
Публикувано24.02.03 18:28



релациите са понятие от логическото моделиране и се създават като теглиш една черта (ползвай молив, не химикалка) между двете entities. От страната на детето чертата завършва с "пачи крак" или една дебела точка (в зависимост от нотацията която използваш).

Като настане време логическия модел да се напраи на физически вече не става дума за релации, а за форин кийс. С други думи в самата база данни релацията се реализира като форин кий.
Синтаксиса трябва да е нещо такова:
alter table <table name> add constraint <constraint name>
foreign key (column list) reference <parent table> (column list)
Смисълът е че в табле не можеш да имаш редове за които не съществъват съответните редове в парент табле.

Туй се нарича "declarative referential integrity" и в някой БД го има, в други го няма. В сайбейс например се появява чак във версия 10.

Ако няма декларативна интегрити, интегрити-то се прави с тригери. В самия тригер проверяваш дали родителя го има. И обратното -- като се изтрива/ упдейтва родителя се проверява дали има деца застрашени да останат сираци и или забраняваш операцията или първо изтриваш децата.

Ако БД няма и тригери, трябва защитаваш базата от данни чрез клиентската програма, което е загубена работа и трябва да се примириш с мисълта че лека-полека в базата ще се намърдат лайна, които трябва да се чистят, което хич не е приятно. Може разбира се да ги оставиш с надеждата че юзерите нямат толкова развито обоняние и няма да усетят миризмата.

В заключение, има един куп програми които подпомагат моделирането като налагат спазването на правилата за нормализация, рисуват диаграми на модела и в крайна сметка генерират скрипт с ДДЛ-ла на базата от данни. Препоръчвам горещо използването им за всеки проект, който изисква повече от 10 таблици. ErWin (CA) е готин, но има и сума ти други. Малко са скъпички, но за българина това не е проблем.




Тема Re: Pitaneнови [re: System]  
АвторPavel (Нерегистриран)
Публикувано24.02.03 19:56



>1. Kak se suzdavat 'Relationships' v MySQL mejdu tablitcite?
Ami wuobrazqwash si che gi ima kato kazwash sega klucha ot tqa tablica trqbwa da e sushtiq kato klucha ot drugata i pri selectetite go wzemash predwid. Nqma relni constrainti w MySQL

>2. MySQL poddurja li vlojeni zaiavki?
Ne, chak wuw versiq 5 t.e. sled 2-3 godini

>3. А тригери и съхранени функции
Pak sled 2-3 godini



Тема Re: Pitaneнови [re: System]  
Автор salle (минаващ)
Публикувано24.02.03 23:50



1. Както Бай Любо ти каза - на хартия. т.е. та "идейно ниво"

Ако те интересуват т-нар- FOREIGN KEYS - има ги за InnoDB таблици.

2. Във 4.1 и нагоре. ВЕЧЕ!!! Само, че 4.1 е в много ранен стадий на разработка - още нямаме и Alpha.

Между другото непрекъснато се убеждавам, че в 90-95% от случаите когато някой пита за вложени заявки всъщност може и без тях. А по принцип когато нещо може и със и без ... без е по бързо поради голям ред причини и независимо от сървъра ... ама това е встрани от темата.

3. Съхранени Процезури в 5.0 - ако някой много силно се интересува ще му ги покажа работещи. Има много време обаче.
Тригери - планирани са за 5.0

Съвсем логично е защото едва ли някой може да си представи смисъл от Тригери без Съхранени Процедури



Тема Re: Павеле...къде четеш?нови [re: Pavel]  
Автор salle (минаващ)
Публикувано25.02.03 01:22



> Ne, chak wuw versiq 5 t.e. sled 2-3 godini


mysql> select version();
+-----------------------+
| version() |
+-----------------------+
| 4.1.0-alpha-debug-log |
+-----------------------+
1 row in set (0.02 sec)

mysql> select a from t1 where a in (select a from t1 where a in (select b from t2));
+------+
| a |
+------+
| 1 |
+------+
1 row in set (0.01 sec)

mysql> explain select a from t1 where a in (select a from t1 where a in (select b
from t2));
+----+---------------------+-------+--------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+---------------------+-------+--------+---------------+------+---------+------+------+-------------+
| 1 | PRIMARY | t1 | ALL | NULL | NULL | NULL | NULL | 2 | Using where |
| 2 | DEPENDENT SUBSELECT | t1 | ALL | NULL | NULL | NULL | NULL | 2 | Using where |
| 3 | DEPENDENT SUBSELECT | t2 | system | NULL | NULL | NULL | NULL | 1 | |
+----+---------------------+-------+--------+---------------+------+---------+------+------+-------------+



3.
> Pak sled 2-3 godini

mysql> select version();
+-------------------+
| version() |
+-------------------+
| 5.0.0-alpha-debug |
+-------------------+
1 row in set (0.02 sec)

Има работещи съхранени процедури така, че се надявам и тук да не си прав за 2-3 те години





Тема тук пак може да заспорим....нови [re: salle]  
Автор Topбaлaн (любопитко)
Публикувано25.02.03 08:55



А по принцип когато нещо може и със и без ... без е по бързо поради голям ред причини и независимо от сървъра ... ама това е встрани от темата.

я кажи една причина поне ?

ако говорим за това, че една добре оптимизирана заявка се изпълнява по-бързо и създава по-малко грижи на сървъра - съгласен!!!

но аз мисля, че е точно обратното - когато може без и със... обикновено по бързо е със!



Тема Re: Pitaneнови [re: System]  
АвторSystem (Нерегистриран)
Публикувано25.02.03 09:33



Che za kakvo mi e togava tozi MySQL. Niakoi moje li da me ubedi v tova da go izpolzvam?



Тема Re: Pitane [re: System]  
Автор NDeu (минаващ)
Публикувано25.02.03 11:07



Ползвай IB6/Firebird
Има всичко горепосочено + транзакции (salle ще ти каже, че и те ги имат понякога, но обикновено не били необходими)
По-безплатен е

Айде на войната-а-а-а



Тема Re: Pitaneнови [re: NDeu]  
Автор salle (минаващ)
Публикувано25.02.03 12:27



NDeu

Аз не помня да сам казвал ти какво ще кажеш ....



Тема Re: Pitaneнови [re: System]  
Автор salle (минаващ)
Публикувано25.02.03 12:36



Ако ти трябват точно тези неща който липсват в който и да е продукт никой в нищо не може да те убеди естествено.

Иначе мога да ти посоча много причини, но все пак по-добре потършувай из интернета за да провериш защо толкова милиони потребители харесват MySQL




Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.