Информационная система "земельный кадастр"

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 60 60 страниц
  • 20 + 20 источников
  • Добавлена 24.01.2024
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
Оглавление
1 СИСТЕМНЫЙ АНАЛИЗ 5
1.1 Название и цель разработки информационной системы 5
1.2 Характеристика предприятия 5
1.2.1 Сведения о предприятии 5
1.2.2 Сведения об отношениях предприятия с действующими лица- 6
ми из окружающей среды 6
1.2.3 Детализация отношений 6
1.2.4 Описание сценариев реализации процессов 7
1.3 Сводные данные о категориях пользователей и их потребностях 9
1.4 Концептуальная модель данных предметной области 15
1.5 Описание специфических требований к программному продукту, опосредованно связанных с предметной областью 18
2 СИСТЕМНЫЙ АНАЛИЗ 20
2.1 Иерархия функций информационной системы 20
2.2 Структура системы 24
2.2.1 Структурная схема системы 24
2.2.2 Описание подсистем, из которых состоит программный продукт 25
2.3 Проектирование пользовательского интерфейса 26
2.3.1 Схема интерфейса 26
2.3.2 Проектирование экранных форм. Эскизы и общее описание форм 27
2.4 Системное проектирование. Проектирование БД 30
2.4.1 Логическая модель данных, полученная из концептуальной 30
2.4.2 Описание работ, проделанных по нормализации 34
2.4.3 Описание используемых средств обеспечения целостности данных 35
3 ТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ 36
3.1 Выбор языка, среды, которые будут использоваться в ходе разработки приложения 36
3.2 Выбор СУБД 38
3.3 Физическая модель данных 39
3.3.1 Составление таблиц со списком полей физической модели 40
3.4 Запросы на выборку 45
ЗАКЛЮЧЕНИЕ 46
СПИСОК ЛИТЕРАТУРЫ 48
Приложение А Запрос на создание БД 50
Приложение Б Классы сущностей 54

Фрагмент для ознакомления

microsoft.com/ru-ru/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-applicationORM. Ключи и ссылки. https://neerc.ifmo.ru/wiki/index.php?title=ORM._%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B8_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8ORM. URL: https://simpleone.ru/glossary/orm/#Типы сущностей. URL: https://learn.microsoft.com/ru-ru/ef/core/modeling/entity-types?tabs=data-annotationsАннотации. URL: https://metanit.com/sharp/entityframework/6.3.phpСоздание запросов LINQ на языке C#. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp/linq/write-linq-queriesПриложение АЗапрос на создание БД-- MySQL Workbench Forward EngineeringSET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';-- begin attached script 'script'-- DROP DATABASE DROP SCHEMA IF EXISTS `cadasdb`;-- end attached script 'script'-- ------------------------------------------------------- Schema cadasdb-- -----------------------------------------------------CREATE SCHEMA IF NOT EXISTS `cadasdb` DEFAULT CHARACTER SET utf8 ;USE `cadasdb` ;-- ------------------------------------------------------- Table `cadasdb`.`users`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`users` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `login` VARCHAR(20) NULL, `passwd` VARCHAR(40) NULL, `capt` VARCHAR(120) NULL, `role` TINYINT(1) NULL, PRIMARY KEY (`id`))ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`region`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`region` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `capt` VARCHAR(100) NULL, `code` CHAR(2) NULL, PRIMARY KEY (`id`))ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`district`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`district` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `idRegion` BIGINT NULL, `capt` VARCHAR(100) NULL, `code` CHAR(2) NULL, PRIMARY KEY (`id`), INDEX `FK_Reg_idx` (`idRegion` ASC) VISIBLE, CONSTRAINT `fkRegion` FOREIGN KEY (`idRegion`) REFERENCES `cadasdb`.`region` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`location`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`location` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `idDistrict` BIGINT NULL, `code` VARCHAR(10) NULL, `capt` VARCHAR(100) NULL, `municipal` VARCHAR(100) NULL, PRIMARY KEY (`id`), INDEX `fkDistict_idx` (`idDistrict` ASC) VISIBLE, CONSTRAINT `fkDistict` FOREIGN KEY (`idDistrict`) REFERENCES `cadasdb`.`district` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`types`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`types` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `capt` VARCHAR(45) NULL, `def` VARCHAR(150) NULL, `code` VARCHAR(7) NULL, PRIMARY KEY (`id`))ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`using`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`using` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `capt` VARCHAR(50) NULL, `code` VARCHAR(5) NULL, PRIMARY KEY (`id`))ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`objects`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`objects` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `idLoc` BIGINT NULL, `idType` BIGINT NULL, `idUser` BIGINT NULL, `idUse` BIGINT NULL, `capt` VARCHAR(100) NULL, `code` VARCHAR(20) NULL, `addr` VARCHAR(150) NULL, `square` FLOAT NULL, `price` FLOAT NULL, PRIMARY KEY (`id`), INDEX `fkLocal_idx` (`idLoc` ASC) VISIBLE, INDEX `fkType_idx` (`idType` ASC) VISIBLE, INDEX `fkUsers_idx` (`idUser` ASC) VISIBLE, INDEX `fkUsing_idx` (`idUse` ASC) VISIBLE, CONSTRAINT `fkLocal` FOREIGN KEY (`idLoc`) REFERENCES `cadasdb`.`location` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `fkType` FOREIGN KEY (`idType`) REFERENCES `cadasdb`.`types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `fkUsers` FOREIGN KEY (`idUser`) REFERENCES `cadasdb`.`users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `fkUsing` FOREIGN KEY (`idUse`) REFERENCES `cadasdb`.`using` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`owners`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`owners` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `capt` VARCHAR(100) NULL, `INN` VARCHAR(12) NULL, `addr` VARCHAR(150) NULL, `phone` VARCHAR(20) NULL, `email` VARCHAR(50) NULL, PRIMARY KEY (`id`))ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`owntype`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`owntype` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `capt` VARCHAR(30) NULL, `code` VARCHAR(7) NULL, PRIMARY KEY (`id`))ENGINE = InnoDB;-- ------------------------------------------------------- Table `cadasdb`.`ownership`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `cadasdb`.`ownership` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `idOwner` BIGINT NULL, `idObj` BIGINT NULL, `idOwn` BIGINT NULL, `sDate` DATE NULL, `expDate` DATE NULL, PRIMARY KEY (`id`), INDEX `fkOwner_idx` (`idOwner` ASC) VISIBLE, INDEX `fkObject_idx` (`idObj` ASC) VISIBLE, INDEX `fkOwnType_idx` (`idOwn` ASC) VISIBLE, CONSTRAINT `fkOwner` FOREIGN KEY (`idOwner`) REFERENCES `cadasdb`.`owners` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fkObject` FOREIGN KEY (`idObj`) REFERENCES `cadasdb`.`objects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fkOwnType` FOREIGN KEY (`idOwn`) REFERENCES `cadasdb`.`owntype` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)ENGINE = InnoDB;SET SQL_MODE=@OLD_SQL_MODE;SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;-- begin attached script 'addAdmin'-- Create first userinsert into users (login,passwd,capt,role) values ('admin','1','Built-in admin',1);-- end attached script 'addAdmin'ПриложениеБКлассысущностейusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("district")] public partial class District { public District() { this.locations = new ObservableCollection(); } public long id { get; set; } public Nullable idRegion { get; set; } public string capt { get; set; } public string code { get; set; } [ForeignKey("idRegion")] public Region region { get; set; } public ICollection locations { get; set; } public override string ToString() => (code == null ? "" : code) + " - " + capt; }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("location")] public partial class Location { public Location() { this.objects = new ObservableCollection(); } public long id { get; set; } public Nullable idDistrict { get; set; } public string code { get; set; } public string capt { get; set; } public string municipal { get; set; } [ForeignKey("idDistrict")] public District district { get; set; } public ICollection objects { get; set; } public override string ToString() => ((municipal == null || municipal=="")? "" : municipal+",") + capt; }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("objects")] public partial class Objects { public Objects() { this.ownerships = new ObservableCollection(); } public long id { get; set; } public Nullable idLoc { get; set; } public Nullable idType { get; set; } public Nullable idUser { get; set; } public Nullable idUse { get; set; } public string capt { get; set; } public string code { get; set; } public string addr { get; set; } public float square { get; set; } public float price { get; set; } [ForeignKey("idLoc")] public Location location { get; set; } [ForeignKey("idType")] public Types type { get; set; } [ForeignKey("idUser")] public Users user { get; set; } [ForeignKey("idUse")] public Using use { get; set; } public ICollection ownerships { get; set; } public override string ToString() => capt + (code == null ? "" : " (" + code + ")"); }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; [Table("owners")] public partial class Owners { public Owners() { this.ownerships = new ObservableCollection(); } public long id { get; set; } public string capt { get; set; } public string INN { get; set; } public string addr { get; set; } public string phone { get; set; } public string email { get; set; } public ICollection ownerships { get; set; } public override string ToString() => capt + (INN == null ? "" : " ("+INN+")"); }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("ownership")] public partial class Ownership { public long id { get; set; } public Nullable idOwner { get; set; } public Nullable idObj { get; set; } public Nullable idOwn { get; set; } public Nullable sDate { get; set; } public Nullable expDate { get; set; } [ForeignKey("idOwner")] public Owners owner { get; set; } [ForeignKey("idObj")] public Objects obj { get; set; } [ForeignKey("idOwn")] public OwnType owntype { get; set; } public override string ToString() => (owner == null ? "" : owner.ToString()) + (obj == null ? "" : " - " + obj.ToString()); }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; [Table("owntype")] public partial class OwnType { public OwnType() { this.ownship = new ObservableCollection(); } public long id { get; set; } public string capt { get; set; } public string code { get; set; } public ICollection ownship { get; set; } public override string ToString() => (code == null ? "" : code + " - ") + capt; }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; [Table("region")] public partial class Region { public Region() { this.districts = new ObservableCollection(); } public long id { get; set; } public string capt { get; set; } public string code { get; set; } public ICollection districts { get; set; } public override string ToString() => (code == null ? "" : code) + " - " + capt; }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; [Table("types")] public partial class Types { public Types() { this.objects = new ObservableCollection(); } public long id { get; set; } public string capt { get; set; } public string code { get; set; } public string def { get; set; } public ICollection objects { get; set; } public override string ToString() => (code == null ? "" : code) + " - " + capt; }}//------------------------------------------------------------------------------namespace Cadastre{ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("users")] public partial class Users { public Users() { this.objects = new ObservableCollection(); } public long id { get; set; } public string login { get; set; } public string passwd { get; set; } public string capt { get; set; } public Nullable role { get; set; } public ICollection objects { get; set; } public override string ToString() => capt; }}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Cadastre{ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; [Table("using")] public partial class Using { public Using() { this.objects = new ObservableCollection(); } public long id { get; set; } public string capt { get; set; } public string code { get; set; } public ICollection objects { get; set; } public override string ToString() => (code == null ? "" : code) + " " + capt; }}

СПИСОК ЛИТЕРАТУРЫ
1. Государственный земельный кадастр. URL: https://kadastrmap.ru/kadastr/kadastr-zemelnyj-gosudarstvennyj/
2. ЕГРП 365. URL: https://egrp365.ru/map/?kadnum=61:55:0011312:3
3. Категории земель и виды разрешенного использования. URL: https://zem50.ru/baza-znanij/kategorii-zemel-i-vidy-razreshennogo-ispolzovaniya#id1
4. Стружкин, Н. П. Базы данных: проектирование : учебник для вузов / Н. П. Стружкин, В. В. Годин. — Москва : Издательство Юрайт, 2023. — 477 с. — (Высшее образование). — ISBN 978-5-534-00229-4. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/511019
5. Диаграмма сущность-связь. URL: http://dit.isuct.ru/IVT/BOOKS/DBMS/DBMS14/ch_2_2.html
6. Различные архитектурные решения, используемые при реализации многопользовательских СУБД. Краткий обзор СУБД. URL: https://intuit.ru/studies/courses/508/364/lecture/8643?page=2
7. MySQL 8.0 Reference Manual. URL: https://dev.mysql.com/doc/refman/8.0/en/
8. MySQL Workbench Manual. URL: https://dev.mysql.com/doc/workbench/en/
9. Что такое Visual Studio? URL: https://learn.microsoft.com/ru-ru/visualstudio/get-started/visual-studio-ide?view=vs-2022
10. Что такое C#: плюсы и минусы языка. URL: https://gb.ru/blog/chto-takoe-c/
11. Документация по C#. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp
12. TIOBE Index for December 2023. URL: https://www.tiobe.com/tiobe-index/
13. Создание пользовательского интерфейса с помощью конструктора XAML. URL: https://learn.microsoft.com/ru-ru/visualstudio/xaml-tools/creating-a-ui-by-using-xaml-designer-in-visual-studio?view=vs-2022
14. Entity Framework 6. URL: https://learn.microsoft.com/ru-ru/ef/ef6/
15. Руководство. Начало работы с Entity Framework 6. URL: https://learn.microsoft.com/ru-ru/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
16. ORM. Ключи и ссылки. https://neerc.ifmo.ru/wiki/index.php?title=ORM._%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B8_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8
17. ORM. URL: https://simpleone.ru/glossary/orm/#
18. Типы сущностей. URL: https://learn.microsoft.com/ru-ru/ef/core/modeling/entity-types?tabs=data-annotations
19. Аннотации. URL: https://metanit.com/sharp/entityframework/6.3.php
20. Создание запросов LINQ на языке C#. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp/linq/write-linq-queries