Помощь - Поиск - Пользователи - Календарь
Полная версия: Кто поможет с базой данных в СУБД Access? > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Magicman
Здравствуйте!
Дано такое задание:
Задание №3 Вариант 7
Разработать информационно-логическую модель предметной области «Клиент» с атрибутами
Код клиента
организация
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
отдел
должность
дата заказа
форма оплаты
Создать логическую структуру этой базы данных для СУБД Access.
Заполнить таблицы базы данных записями.
Создать отчёт с параметрами Код клиента, фамилия, организация, дата заказа
Создать запрос о клиентах из одного города.
Вопрос:
Во избежание дублирования записей, как провести нормализацию отношений, то есть разбить атрибуты по таблицам?
Спасибо!!!

Vahappaday
хм...
я бы сделал 2 таблицы
В одной ключ [Код клиента] и вся информация о клиенте
Вторая состоит из 3 или 4 полей, [Код клиента], [Дата заказа], [Форма оплаты] и, возможно, id заказа какой-нибудь ввести
Magicman
А как бы ВЫ озаглавили таблицы?
У меня вот такое получилось:
Во избежание дублирования записей, проведём нормализацию отношений, то есть разобьём атрибуты по таблицам.
1 таблица получилась такой: называется Клиенты
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
2 таблица называется Отдел
должность здесь будет ключевое поле
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
3 таблица называется организация
должность здесь будет ключевое поле
дата заказа
форма оплаты
Это правильно?
Я избежал повторений при такой структуре?
Спасибо!!!
Vahappaday
Третью таблицу я бы назвал... ну, точно не "Организация". Я бы назвал её "Заказы"

Не понимаю, зачем нужна 2 таблица, та которая у Вас называется "Отдел".
Добавив в неё ФИО, Вы как раз добились повторений. Делать таблицу с местами работы тут не стоит, слишком мало общей для предприятия информации. Рабочие телефоны могут быть разные у двух сотрудников с 2 одинаковыми должностями.
Короче, я считаю, что вторая таблица неуместна.

В третьей, должность не должна быть ключевым полем.
Magicman
Вот нашёл пример в Сети)))
Задание очень похожее, тоже содержит 19 атрибутов.
Может действительно достаточно будет двух таблиц, одна будет называться Клиенты, другая Заказы, в первой будет вся информация о клиенте, а во второй ключ код клиента ФИО, Дата, Оплата?
Решите пожалуйста?
Спасибо!!!
Magicman
Может быть так?
Код клиента 1 таблица с названием Клиенты
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
должность
2 таблица с названием Организация
отдел
Код клиента
имя
фамилия
отчество
3 таблица с названием Заказы
отдел
дата заказа
форма оплаты
С уважением, Антон.
Magicman
1 таблица получилась такой: называется Клиенты
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
2 таблица называется Отдел
должность здесь будет ключевое поле
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
3 таблица называется организация
должность здесь будет ключевое поле
дата заказа
форма оплаты
Это правильно?
Я избежал повторений при такой структуре?
Может быть отдел и должность поменять местами
Спасибо!!!
Vahappaday
Я уже говорил, что 3 таблицы неуместны.
Вот тут
Цитата

Может действительно достаточно будет двух таблиц, одна будет называться Клиенты, другая Заказы, в первой будет вся информация о клиенте, а во второй ключ код клиента ФИО, Дата, Оплата?

у Вас есть разумное зерно. В общем-то, я так и советовал сделать.
Не понятно только, зачем во 2 таблице повторить ФИО, если им место в 1-й.
Ещё продумайте, что будет ключом во 2 таблице.

И ещё, в личку, пожалуйста, запросы только на платную помощь.
Magicman
Есть у меня ещё один вариант
Поскольку организация и место работы одно и тоже, то расположим таблицы, исключая повторения данных:
1 таблица Клиенты назовём
Код клиента ключ
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
2 таблица Назовём Место работы
Код клиента ключ
организация ключ
имя
фамилия
отчество
3 таблица Назовём Отдел
организация ключ
должность
дата заказа
форма оплаты
Правильно?
Vahappaday
)))) см. предыдущие комментарии)))
Magicman
Место работы и организация - это точно одно и то же, только вопрос, где поставить ключ связи с 3 таблицей, её, наверно, можно назвать Заказы
Посмотрите пожалуйста пример, состоящий из трёх таблиц, который я нашёл в Сети.
Спасибо!!!
Magicman
Может быть попробовать две таблицы одна клиенты, другая заказы и связать через код клиента?
Спасибо!!!
Vahappaday
Цитата(Magicman @ 2.4.2010, 8:13) *

Может быть попробовать две таблицы одна клиенты, другая заказы и связать через код клиента?
Спасибо!!!

Да!!!!)))))
Я об этом сказал в самом начале! Вы читаете, что я пишу?))))))

Осталось придумать ключ для таблицы "Заказы")))))
Magicman
Ключ код клиента.
Правильно?
Спасибо!!!
Magicman
1 таблица получилась такой: называется Клиенты
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
Организация
Отдел
должность
2 таблица называется Заказы
Код клиента здесь будет ключевое поле
дата заказа
форма оплаты
Это правильно?
Я избежал повторений при такой структуре?
И всё-таки чем нужно руководствоваться при нормализации отношений (при разбиении на таблицы)?
Спасибо!!!
Vahappaday
Нужно руководствоваться отсутствием повторений. Если есть наборы данных, которые однозначно соответствуют друг-другу, их объединяют в таблицу.
Например, мои ФИО, номер паспорта, место работы/учёбы однозначно соответствуют друг-другу.
Мой номер паспорта есть только у меня, у человека с другими данными его быть не может. Более того, номер паспорта уникален, а значит, может быть ключом.

Теперь почти всё правильно, но код клиента не может быть ключом. Клиент может сделать несколько заказов, и тогда будет несколько записей с одинаковым ключом, что недопустимо. Предлагаю ввести новое поле - код заказа или номер заказа - как больше нравится. Оно то и будет ключевым.
Magicman
Нашёл в Сети очень похожее задание на моё
Вот посмотрите пожалуйста, как Вы это объясните?
Задание №3
Разработать информационно-логическую модель предметной области «Участники конференции» с атрибутами:
 Код участника
 Имя
 Фамилия
 Город
 Район
 Область
 Страна
 Почтовый индекс
 Домашний телефон
 Рабочий телефон
 Факс
 Место работы
 Должность
 Дата регистрации
 Дата отъезда
 Секция
 Название доклада
 Тематика доклада
Создать логическую структуру этой базы данных для СУБД Access.
Заполнить таблицы базы данных записями.
Создать отчет с параметрами Код участника – Фамилия – Название доклада.
Создать запрос об участниках конференции для одной из секций.
Решение)))
База данных – это поименованная совокупность структурированных данных, относящихся к определенной предметной области.
Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извлекать выборку с произвольным сочетанием признаков. Сделать это возможно, если данные структурированы. Структурирование – это введение соглашений о способах представления данных.
Система управления базами данных – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации.
Vahappaday
всё, я пас)))
дальше на усмотрение админов))
Magicman
Здравствуйте!
Помогите пожалуйста провести нормализацию отношений во избежание повторения данных?
Задание №3 Вариант 7
Разработать информационно-логическую модель предметной области «Клиент» с атрибутами
Код клиента
организация
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
отдел
должность
дата заказа
форма оплаты
Создать логическую структуру этой базы данных для СУБД Access.
Заполнить таблицы базы данных записями.
Создать отчёт с параметрами Код клиента, фамилия, организация, дата заказа
Создать запрос о клиентах из одного города.
С уважением, Антон.
Magicman
Есть у меня ещё такой вариантик)))
Первую таблицу назовём клиент
код клиента
код заказа
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
отдел
должность
Вторую таблицу назовём заказ
код заказа
организация
дата заказа
форма оплаты
julia_lisha
извините но если бы вашу работу увидел программист-бд он бы бился в истерике newconfus.gif
Vahappaday
это про мои комментарии?
julia_lisha
да да про ваши 2 таблицы blink.gif
их там больше yes.gif

с двумя таблицами конечно проще сделать операции различные....
но......правила есть правила)
Vahappaday
Вполне допускаю, что был не прав.
Наверное, мне не стоит лезть в тему бд...

Можно ваш вариант?

Разбить таблицу с информацией о клиенте на мелкие?
Код клиента - Фамилия
Код клиента - Имя
...
Код клиента - Место работы
Код клиента - Должность?



julia_lisha
Цитата
1 таблица Клиенты
-Код клиента
-имя
-фамилия
-отчество
-код адреса
-код должности

2 таблица Адрес
-код адреса
-город
-район
-область
-страна
-почтовый индекс

3 таблица Телефоны клиентов
-Код телефона
-номер
-код типа телефона
-код клиента

4 таблица Типы телефонов
-код типа телефона
-наименование(тут факс сот дом и т.д.)

5 таблица Должности
-код должности
-название

6 таблица Заказы
-код заказа
-дата заказа
-код вида оплаты

7 таблица Заказы клиентов
-код заказов клиентов
-код клиента
-код заказа

8 таблица Виды оплаты
-код вида оплаты
-вид

9 таблица Организация
-код организации
-место работы
-код отдела
-код клиента

10 таблица Отделы
-код отдела
-название


получился такой вариант yes.gif все отношенияна ходятся в 3НФ
Magicman
julia_lisha А Вы не могли бы всё это выложить на форум файлом Access?
Спасибо!!!
Vahappaday
Благодарствую)) Просветили неуча))
julia_lisha
Цитата(Magicman @ 8.4.2010, 19:19) *

julia_lisha А Вы не могли бы всё это выложить на форум файлом Access?
Спасибо!!!

dry.gif а вам не кажется это уже чистой воды наглостью...... mad.gif
и работу я вам корректировала в Блокноте)))) так что сами сами

Цитата
Vahappaday
Благодарствую)) Просветили неуча))


да не за что smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.