база от данни Печат

Задание: Разработете база от данни за топлинно счетоводство на жилищен блок с общ топломер. Блокът има N (N< 100) апартамента. Разходите на апартаментите се изчисляват въз основа на тяхната кубатура и разхода на вода отчетен по водомер. Входни данни : показанията на топломера за текущия месец(данните за топломера се поддържат за една година), показанията на индивидуалния водомер за апартамент, цена на топлинната енергия за текущия месец.

I. Кратка справка за база от данни

Чрез създаване на база  данни, се осигурява бърз достъп за търсене и обновяване на въведена информация.

Програмата “Ассеss”, която е част от програмния пакет МS Office, е типичен пример на потребителски ориентирана програма за управление на бази от данни. Макар, че в Access е възможно и програмиране с езика SQL -- малки бази от данни могат да бъдат създавани без програмиране.

Системите за управление на базите от данни създават, обработват и поддържат точно определени структури от данни. Най-популярен е релационният модел, при който данните се организират в таблици, между които се осъществяват връзки.

При създаване на релационни бази от данни се създава един файл, който съдържа данни в таблици.Чрез тях могат да сe създават заявки, форми и отчети.

II. Разработка на базата от данни

Физическа база от данни

Таблици

Полета

ApKub

Апартамент, кубатура

ApMesec

Апартамент, месец, показание водомер

Mesechno

Месец, показание  топломер (общо), цена на калория, цена на вода

На базата на тези физически отношения образуваме логическата база от данни.

Логическа база от данни

Съдържа следните три таблици:

  1. Първа таблица – ApKub – съдържа номера на апартамента и неговата кубатура.

За да се изпълни условието апартаментите да са N(N<100) в полето апартамент въвеждаме Validation Rule “<100”. По този начин номера на апартаментите, които добавяме няма да е число по-голямо от 100.

2. Втора таблица – ApMesec – съдържа номер на апартамент и показанието на водoмера за съответния месец.

3. Трета таблица – mesechno – съдържа показанието на общия топломер, цената на единица калория и цената на водата(кубичен метър) за съответния месец.

Релационни връзки

Релационните връзки между обектите в логическия модел са показани на изображението:

Заявките – силата на базите данни

Разгледахме въвеждането на информацията. Но, какво да правим когато тя ни трябва обратно? Използваме Query (заявка), за да направим конкретно запитване към СУБД за дадена информация.

В ACCESS отново ни се предлага вградено улеснение за съставянето на такава заявка – дизайнер на заявките или ‘Магьосник за заявките’. Потребителят има право да използва SQL код, както директно, така и след като е създал определена част от заявката. Всяка заявка изпълнява определено запитване и връща резултат, подререн по дадени критерии.

Ето кода на заявката, която смята общата кубатура на апартаментите:

SELECT Sum([kubatura]) AS [Кубатура-общо]

FROM ApKub;

Кодът на заявката – Сума заплащане – отчет по месеци е :

SELECT ApKub.apartament, ApMesec.mesec, mesechno!toplomer_obshto/ObshtaKub![Кубатура-общо]*ApKub!kubatura*mesechno!toplomer_cena+ApMesec!vodomer_pok*mesechno!voda_cena AS [Сума за плащане]

FROM ObshtaKub, mesechno INNER JOIN (ApKub INNER JOIN ApMesec ON ApKub.apartament=ApMesec.apartament) ON mesechno.mesec=ApMesec.mesec;

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

Заявката за Сума за плащане(Кой месец/апартамент) има следния код:

SELECT ApKub.apartament, ApMesec.mesec, mesechno!toplomer_obshto/ObshtaKub![Кубатура-общо]*ApKub!kubatura*mesechno!toplomer_cena+ApMesec!vodomer_pok*mesechno!voda_cena AS [Сума за плащане]

FROM ObshtaKub, mesechno INNER JOIN (ApKub INNER JOIN ApMesec ON ApKub.apartament = ApMesec.apartament) ON mesechno.mesec = ApMesec.mesec

WHERE (((ApKub.apartament)=[Кой апартамент?]) AND ((ApMesec.mesec)=[За кой месец?]));

Потребителя задава апартамента и месеца, за който иска да получи справка.

Заявката за Общо приходи за годината има следния код:

SELECT Sum([Сума за плащане - отчет по месеци].[Сума за плащане]) AS [Общо приходи от сметки], Max([Сума за плащане - отчет по месеци].[Сума за плащане]) AS [Най-висока сметка през периода], Min([Сума за плащане - отчет по месеци].[Сума за плащане]) AS [Най-ниска сметка през периода], Avg([Сума за плащане - отчет по месеци].[Сума за плащане]) AS [Средно на месец]

FROM [Сума за плащане - отчет по месеци];

Тя извежда общо приходите за една година, най-високата, най-ниската и средна сметка.

Форми за въвеждане на информация

За да има смисъл една База Данни, то трябва да има информация която да се възползва от структурата на тази БД. За да се улесни въвеждането на информация в таблиците, в MS ACCESS има инструменти за създаване на така наречените форми.

Чрез тези форми се контролира как да извеждаме и/или въвеждаме информация в БД. Предлагат ни се няколко режима на създаване на форми, като в общият случаи се използват последователно.

Iво – създаваме форма на цялата таблица (като евентуално изключим полето ID или друго поле изпълняващо роля на автоматичен ключ), избираме стилът и начина на подреждане на елементите.

IIро – MS ACCESS ни дава възможност да редактираме и добавяме по- комплексна функционалност на формите чрез дизайнера на форми.