Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2017, 17:35   #1
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию БД общие вопросы

Построить базу данных «Отдел кадров предприятия», содержащую сведения о сотрудниках организации.

1)Создать инфологическую модель, описывающую БД в терминах таких понятий, как «сущность», «набор объектов», «связи сущностей и наборов объектов».
2)Трансформировать инфологическую модель в схему реляционной БД, использующей понятие отношения. Полученная схема используется для заполнения БД информацией – построения экземпляра БД.

Сделал след оборазом
Первым делом представил набор объектов
ФИО - Долж - Отдел

Потом
Сотрудники(id, ФИО, год рождения)
Должность(id, наименование)
Отдел(id, Должность, наименование)


Вообщем сделал так. Но мне эта хрень "Модель Сущность - Связь", Трансформация инфомодель в реал БД
непонятно
goto ∞ вне форума Ответить с цитированием
Старый 12.07.2017, 22:45   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Но мне эта хрень "Модель Сущность - Связь", Трансформация инфомодель в реал БД
непонятно
1) Человек который не знает и есть желание изучать какой то предмет.! Всегда находить время чтобы изучать его .! и если что то непонятное, задаёт конкретное вопрос.!
2) Человек который називает своего делу "хрень" эму это не интересно .!
3) Тогда не расстраивайтесь, не обязательно что все был программистом, Можете выбрать другои дела который вам больше нравится .!
4) Тем не менее вы находитесь на форуме С: 21.12.2010

Последний раз редактировалось xxbesoxx; 12.07.2017 в 22:49.
xxbesoxx вне форума Ответить с цитированием
Старый 13.07.2017, 11:53   #3
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
1) Человек который не знает и есть желание изучать какой то предмет.! Всегда находить время чтобы изучать его .! и если что то непонятное, задаёт конкретное вопрос.!
2) Человек который називает своего делу "хрень" эму это не интересно .!
3) Тогда не расстраивайтесь, не обязательно что все был программистом, Можете выбрать другои дела который вам больше нравится .!
4) Тем не менее вы находитесь на форуме С: 21.12.2010

Во первых у меня нету цели стать программистом,
во вторых в этой модели и вправду много допущений что со стороны выглядит как хрень непонятная
goto ∞ вне форума Ответить с цитированием
Старый 13.07.2017, 12:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Сотрудники(id, ФИО, год рождения,idДолжность,idОтдел)
Должность(id, наименование)
Отдел(id, наименование)

Должность -> один к многим -> Сотрудники
Отдел -> один к многим -> Сотрудники
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.07.2017, 12:04   #5
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Возьмем например выражение SQL

SELECT Count1 Count(*)
FROM table
GROUP BY Count1

У учебниках не указывается логика их работы даже. Просто сухая констатация факта.

Я так понимаю что это выражение выдает количество повторений одного значения в столбце Count1
А как она подсчитывает количество групп об этом ничего не говорится. Каждый раз проходя по строке проверяет выбранное значение и проверяет является это значение новой группой или это элемент группы. Вообще по моему это муть.
goto ∞ вне форума Ответить с цитированием
Старый 13.07.2017, 12:09   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
SELECT Count1 Count(*)
FROM table
GROUP BY Count1
Count(*) - количество строк в таблице для каждого значения поля Count1. А как подсчитывает это внутренняя реализация. А как бы сам подсчитал из текстового файла в виде:
3 4
1 2
1 3
1 3
2 5
1 7
3 0
1-ая колонка это твой Count1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.07.2017, 12:16   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Возьмем например выражение SQL

SELECT Count1 Count(*)
FROM table
GROUP BY Count1
во-первых, это запись с ошибкой
явно нужно поставить запятую:
Код:
SELECT Count1, Count(*)
FROM table
GROUP BY Count1
во-вторых, рекомендую почитать книжку Мартина Грабера (M.Gruber) "Понимание SQL"
(она даже на форуме выкладывалась, можно найти).
Это букварь по SQL. Очень полезный.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2017, 12:31   #8
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
SELECT Count1 Count(*)
FROM table
GROUP BY Count1
Count(*) - количество строк в таблице для каждого значения поля Count1. А как подсчитывает это внутренняя реализация. А как бы сам подсчитал из текстового файла в виде:
3 4
1 2
1 3
1 3
2 5
1 7
3 0
1-ая колонка это твой Count1
группа = [null] (массив)
k=1 (1строка)
если к <> группа
группа = значение к
от k+1 до последнего
если k+1 = группа то ++ группа (значение к)
++k

Где то так, но легче сделать наверно с абстрактными структурами типа дерево или список

Последний раз редактировалось goto ∞; 13.07.2017 в 12:46.
goto ∞ вне форума Ответить с цитированием
Старый 13.07.2017, 12:32   #9
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, это запись с ошибкой
явно нужно поставить запятую:
Код:
SELECT Count1, Count(*)
FROM table
GROUP BY Count1
во-вторых, рекомендую почитать книжку Мартина Грабера (M.Gruber) "Понимание SQL"
(она даже на форуме выкладывалась, можно найти).
Это букварь по SQL. Очень полезный.
Спасибо я этим не собираюсь заниматься, поверхностно ознакомиться просто
goto ∞ вне форума Ответить с цитированием
Старый 13.07.2017, 13:18   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Где то так, но легче сделать наверно с абстрактными структурами типа дерево или список
Вы написали очень-очень примерный код. Но логика именно такая.

но если говорить о том, как это реализовано, то:

во-первых, наверняка, в разных СУБД это реализовано по разному.

во-вторых, это реализовано намного сложнее и, главное, эффективней, чем Вы показали на своём алгоритме-примере (используются индексы, например).

и непонятно, зачем Вам это знать?

тем более, что
Цитата:
Сообщение от goto ∞ Посмотреть сообщение
Спасибо я этим не собираюсь заниматься, поверхностно ознакомиться просто
Вы должны изучать ЧТО делаю команды SQL, а не то, КАК они это делают.

Ну, для пример, Вы можете переместить файл в Проводнике с жесткого диска на USB. Это выполняется путём вызова системной функции ОС (WIN API - функция MOVEFILE (пишу примерно). Вы знаете, что делает эта функция? Какие она в себе содержит алгоритмы, как она (точнее вызываемые в ней подпрограммы низкого уровня) находит сектора, которые занимает файл, как она делает записи в файловой системе, какие блоки и как помечаются и т.д. и т.п.?
Нет, если Вы собираетесь создавать свою ОС или свою файловую систему и писать драйвера для неё, возможно, Вам это и понадобится.
Но всем остальным миллионам пользователей достаточно того, что им дали инструмент, который выполняет то, что нужно.

Вот возможности инструмента и правила его использования Вам и нужно изучать.
Имхо, конечно.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Общие вопросы по TComport qZED Компоненты Delphi 0 07.12.2013 09:35
Общие вопросы .NET Templar() Общие вопросы .NET 3 16.11.2013 21:39
Общие вопросы. WizarD.89 Свободное общение 12 05.11.2012 18:08
Общие вопросы по C# smartboy Общие вопросы .NET 1 17.07.2009 21:14
Общие вопросы по mysql pushok PHP 1 14.01.2008 22:57