Өндірістік тәжірибе Есебі - мамандығы 6В06102 – Ақпараттық жүйелер


ҚАЗАҚСТАН РЕСПУБЛИКАСЫ АУЫЛШАРУАШЫЛЫҚ МИНИСТРЛІГІ
ҚАЗАҚ ҰЛТТЫҚ АГРАРЛЫҚ УНИВЕРСИТЕТІ
Коммерциялық емес акционерлік қоғамы
«IT-технологиялар, автоматтандыру және агроөнеркәсіптік кешенін механизациялау» факультеті
«IT-технологиялар және автоматтандыру» кафедрасы
Өндірістік тәжірибе
Есебі
Мамандығы 6В06102 - Ақпараттық жүйелер
Орындаған: Қалибек С. А
Топ: ИС-318Қ
Жетекші: Мамырбаев Ө. Ж.
Есепті қорғау қорытындысы:
Қорғаған күні «__»2020ж.
бағасы
(жетекшінің қолы)
Алматы, 2019 ж.
МАЗМҰНЫ:
КІРІСПЕ
Мен Қалибек Санжар Алтайұлы «IT-технологиялар, автоматтандыру және агроөнеркәсіптік кешенін механизациялау» кафедрасында мамыр айынан маусым айына дейінгі аралықта өндірістік практика тәжірибиесінен өттім.
«SQL» жүйесінде деректерді редакциялаудың барлық операциялары (құру, өзгерту және жою) тек объектілік техниканы пайдалана отырып жүргіздім. Деректер базаларында сақталатын мәндерге сәйкес келетін нысандар арқылы деректер базасымен өзара әрекеттесдірдім. Объектілік мәндермен жұмыс істеу Объектілік сілтемелерді (деректер базасының нысандарына сілтеме) ұсыну үшін қызмет ететін арнайы деректер типтері мен кіріктірілген бағдарламалау тілінің нысандары түріндегі деректер базасының мәнін ұсынумен қамтамасыз еттім.
Мен өндірістік практика барысында SQL декларативті бағдарламалау тілінің әдістерін түсіндім. Сонымен қатар, SQL бағдарламалау тілінде сызықтық операторларды, шартты операторларды, логикалық операторларды қолданып деректер қорын құруды үйрендім.
І. НЕГІЗГІ БӨЛІМ
2. 1 SQL тілі туралы түсінік. SQL функциялары.
Мәліметтерге ену мүмкіндігінің реляциялық тәсілі жазбалар тобының амалдарына негізделген. Амалдарды орындауға SQL (Structured Query Language) құрылымдық сұраныс тілінің құралдары қолданылады. Delphi қосымшаларында BDE механизмін қолдану барысында мәліметтер жиыны ретінде SQL-сұранысты орындауды беретін Query немесе StoredProc компоненттері қолданылады. SQL құралдарын жергілікті және қашықтағы мәліметтер қорымен амалдар орындауға қолдануға болады.
Программалаудың процедуралық тілінен айырмашылығы: есептеу процестерін басқару инструкциясы (циклдер, тармақталу, басқа операторға өту) және енгізу/шығару құралдары жоқ.
Microsift Access, Visual FoxPro немесе Paradox сияқты МҚБЖ, SQL-де сұраныстарды программалаумен байланысты әрекеттерді өздері орындайды, мысалы Query By Example (QBE) - үлгі бойынша сұраныс, пайдаланушыға сұранысты визуальды құру құралдарын білдіреді.
SQL программалау тілінің толық функционалдық мүмкіндіктерін қамтымағанмен, ол мәліметтерге ену мүмкіндігіне арналған, және оны программаны жасау құралына қосады. Және Delphi жүйесіне ендірілген.
Сонымен қатар, SQL командаларымен жұмыс істеу үшін сәйкес құралдар және компоненттер бар.
SQL - құрылымды сұранымдар тілі көмегімен мәліметтер қорына күрделі сұраныстарды құруға болады. Сұраныс - бұл белгілі ақпараттарды алуға талап болып табылады. SQL-сұраныстардың көмегімен:
1. Қосымшаның орындалу барысында мәліметтер жиынтығының өрісін қолдануға болады;
2. Бірнеше кестеден өрістер немесе жазбалар алуға болады;
3. Күрделі шарттар бойынша мәліметтер жиынтығының өрісін қолдануға болады;
4. Мәліметтер жиынтығының кез-келген өрісі бойынша сұрыптауға болады;
5. Мәліметтерді іздеуді ұйымдастыруға болады;
SQL тілінің әртүрлі жүйеге негізделген көптеген диалектілері бар. SQL-ді қолдануға қандай жүйеде жұмыс жасасаңыз, соның сәйкес құжаттарын қараған жөн.
SQL сұраныстың екі түрі бар: статикалық және динамикалық.
Статикалық SQL сұраныстар қосымшаны құру барысында жазылады.
Динамикалық SQL сұраныстар коды қосымша орындалу барысында құрылады немесе өзгертіледі.
SQL тілінің операторлары мынадай топқа бөлінеді:
1. Мәліметтерді анықтау тобы ( жаңа кесте құру, өшіру) ;
2. Мәліметтерді басқару тобы ( таңдау, топтастыру ) ;
SQL тілінде қолданылатын негізгі функциялар:
- Статистикалық функциялар:
• AVG() - орташа мән;
• MAX() - ең үлкен мән;
• MIN() - ең кіші мән;
• SUM() - қосынды;
• COUNT() - мәндердің саны;
• COUNT(*) - нөлдік емес мәндердің саны;
- Жолдармен жұмыс істеуге арналған функциялар:
• UPPER(Str) - Str символдық жолды жоғарғы регистрге айыстыру;
• LOWER(Str) - Str символдық жолды төменгі регистрге айыстыру;
• TRIM(Str) - Str жолының бастапқы және соңғы бос орындарын өшіру;
• SUBSTR (Str FROM TO) - Str жолынан, өзі симводардан тұратын, n1 жолынан бастап, n2 жолымен аяқталатын ішкі жолды бөліп алу;
• CAST(<Expression> AS <Type>) - Expression өрнегін Type типіне келтіру;
- Дата және уақытпен жұмыс істейтін функция:
• EXTRACT(<Элемент> FROM <Өрнек>) - дата және уақыт мәндерінен тұратын өрнектен, сәйкес көрсетілген элементтен мәндер алу; дата және уақыт элементі ретінде YEAR, MONTH. MINUTE және SECOND элементтерін көрсетуге болады.
2. 1. 1 Кестелермен орындалатын амалдар.
Кестелермен келесі амалдарды орындауға болады:
• жаңа кесте құру;
• кестені жою;
• кесте өрістерінің құрамын өзгерту;
• индексті құру және өшіру.
Бұл әрекеттер SQL тілінің инструкцияларының көмегімен орындалады.
Кестені құру және жою, құрамын өзгерту
Кестені құру үшін CREATE TABLE инструкциясы қолданылады:
CREATE TABLE <Кесте аты>
(<Өріс аты> <мәлімет типі>
. . .
<Өріс аты> <мәлімет типі>) ;
Файлдың кеңейтілуі бойынша кестенің форматы автоматты түрде, яғни . db - Paradox кестесі үшін, . dbf - dBase кестесі үшін анықталады. Кесте файлы МҚ псевдонимі көрсетілген, МҚ каталогында орналастыру керек.
SQL тілінің көмегімен кесте құру мысалы:
CREATE TABLE Student. dbf
(Numer Integer
Name CHAR(15)
Datarogd DATE) ;
Paradox кестесі үшін PRIMARY KEY сипаттамасын және жақшаның ішіне оның өрістерін көрсетіп, негізгі немесе алғашқы кілтті анықтауға болады.
Кілттік өріс өрістер тізімінде бірінші болып орналасуы керек. Негізгі кілтті құрумен жаңа кестеге құруға мысал:
CREATE TABLE Personal. db
(Code AUTOINC
Name CHAR(15)
Post CHAR(15)
Oklad Numeric(10, 2)
PRIMARY KEY(Code) ) ;
Кестені өшіру үшін келесі инструкция қолданылады:
DROP TABLE <Кесте аты>;
Мысалы DROP TABLE <student>; Дискіден student атты кестеге қатысы
бар барлық файлдар өшіріледі.
Кесте өрістерінің құрамын өзгерту өрістерді қосу немесе өшіруді білдіреді және оның құрылымын өзгертуге әкеледі, сонымен қатар кестені басқа қосымшалар қолданбауы керек. Кесте өрістерінің құрамын өзгерту ALTER TABLE инструкциясының көмегімен орындалады:
ALTER TABLE <Кесте аты>
ADD <өріс аты> <мәліметтер типі>,
DROP <өріс аты>,
ADD <өріс аты> <мәліметтер типі>,
DROP <өріс аты>;
Индекс құру және жою.
Индекс мәліметтерге тез ену мүмкіндігін қамтамасыз етеді. Кестемен орындалатын амалдарды тездету үшін, жазбаларды іздеу және жиі таңдау жүргізілетін өрістерге индекс қойылады. Индекс CREATE INDEX операторының көмегімен құрылады. Жазылуы:
CREATE INDEX <Индекс аты> ON <Кесте аты> (<өріс аты>, . . . <өріс аты>) ;
Бір инструкциямен бір индекс құруға болады, сонымен қатар бір индекс бірнеше өрістің құрамына кіре алады.
Мысалы, 2 өріс бойынша индекс құру.
CREATE INDEX
IndNamePost ON personnel. db (Name, Post)
Индексті жою үшін DROP INDEX операторы қолданылады.
DROP INDEX <Кесте аты>. <индекс аты>
немесе
DROP INDEX <Кесте аты>. PRIMARY
Егер алғашқы индекс (алғашқы кілт) жойылатын болса индекс атының
орнына PRIMARY сипаттамасы көрсет-ді, өйткені алғашқы кілттің аты
болмайды.
2. 1. 2 SQL тілінің стандартизациялануы
1983 жылы Халықаралық стандарттау ұйымы (ISO) және Американдық ұлттық стандарттар институты (ANSI) SQL тілінің стандартын әзірлеуге кірісті. Көптеген кеңестер мен бірнеше алдын-ала нұсқалардан бас тартқаннан кейін, 1986 жылы ANSI ANSI X3. 135-1986 құжатында "Database Language SQL" (SQL мәліметтер базасының тілі) деп аталатын стандарттың алғашқы нұсқасын ұсынды. Бейресми түрде, бұл SQL-86 стандарты SQL1 деп аталды. Бір жылдан кейін ISO 9075-1987 стандартының сол атпен нұсқасы бойынша жұмыс аяқталды. Бұл стандартты әзірлеу TC97 Техникалық комитетінің (ағылш. Technical Committee TC97), ақпаратты есептеу және өңдеу процестері (ағылш. Computing and Information Processing) . Бұл SC21 кіші комитеті деп аталатын оның бөлімшесі (ағылш. Subcommittee SC21), стандартты әзірлеуді қадағалады, бұл SQL1 (SQL-86) үшін ISO және ANSI стандарттарының сәйкестілігінің кепілі болды.
SQL1 стандарты екі деңгейге бөлінді. Бірінші деңгей бүкіл құжатты тұтастай сипаттайтын екінші деңгейдің жиынтығы болды. Яғни, мұндай құрылым sql1 стандартының барлық спецификациялары 1-деңгейге жатпайтынын көздеді. Осылайша, осы стандартты қолдайтынын мәлімдеген провайдер оның SQL тілін жүзеге асыруына сәйкес келетін деңгей туралы мәлімдеуі керек еді. Бұл стандартты қабылдау мен қолдауды едәуір жеңілдетті, өйткені өндірушілер оны қолдауды екі кезеңде жүзеге асыра алды.
Уақыт өте келе стандартқа бірнеше ескертулер мен тілектер жинақталды, әсіресе деректердің тұтастығы мен дұрыстығын қамтамасыз ету тұрғысынан, нәтижесінде 1989 жылы бұл стандарт кеңейтіліп, sql89 деп аталды. Атап айтқанда, оған бастапқы және сыртқы кілттер туралы түсінік қосылды. Құжаттың ISO-нұсқасы ISO 9075:1989 "database Language SQL with Integrity Enhancements" (SQL мәліметтер базасының тұтастығын бақылауды қоса алғанда) деп аталды. Сонымен қатар, ANSI нұсқасы да аяқталды.
1987 жылы SQL1 стандарты бойынша жұмыс аяқталғаннан кейін бірден sql89 стандартын SQL2 деп атауға ауыстыру керек болатын стандарттың жаңа нұсқасы бойынша жұмыс басталды, өйткені құжаттың қабылданған күні сол кезде белгісіз болды. Осылайша, іс жүзінде sql89 және SQL2 параллель дамыды. Стандарттың жаңа нұсқасы 1992 жылы қабылданып, SQL89 стандартын алмастырды. SQL92 деп аталатын жаңа стандарт sql1 стандартының кеңейтімі болды, оның құрамына алдыңғы нұсқаларда көптеген толықтырулар енгізілді.
2. 2. 2 Деректер түрлері
Кестені құру процесінің маңызды сәттерінің бірі-оның өрістері үшін мәліметтер түрлерін анықтау. Кесте өрісінің деректер түрі осы өрісте орналастырылатын ақпарат түрін анықтайды. SQL Server 2010-тегі мәліметтер типі ұғымы қазіргі бағдарламалау тілдеріндегі мәліметтер типі ұғымына толығымен сәйкес келеді.
Атқаратын жады
(байт)
1. Екілік түрлері
Бит 0, 1 немесе NULL мәндерін алатын бір битті сақтауға мүмкіндік береді. 1-ден басқа санды енгізу кезінде мәні 1-ге тең. Bit деректер түрі бір байт өлшеміне ие, бірақ кестеде бірнеше bit типті өрістер бар, олардың барлығы бірге жиналады. Мысалы, егер бізде жеті bit өрісі болса, онда олар алатын жалпы кеңістік бір байтқа тең болады.
BINARY [ұзындығы] - бекітілген екілік мәнді сақтайды ұзындығы 1-ден 8000 байтқа дейін. BINARY түрінің мәні (ұзындығы + 4) байт.
VARBINARY [ұзындығы] - екілік мәнді білдіреді айнымалы ұзындығы 8000 байтқа дейін. Орын мөлшеріне тең енгізілген деректер плюс 4 байт.
2. Символдық деректер түрлері
CHAR (ұзындық) - 1-ден 8000 таңбаға дейінгі бекітілген ұзындықтың символдық деректерін сақтайды.
VARCHAR (ұзындығы) - жолдың ауыспалы ұзындығы бар.
NCHAR (ұзындығы) .
NVARCHAR (ұзындығы) .
Соңғы екі түрі Unicode таңбаларын сақтауға арналған. Ұзындықтың максималды мәні 8000 таңбамен шектелген.
Ұзындық параметрі осы бағанға орналастыруға болатын таңбалардың максималды санын көрсету үшін қолданылады (әдепкі 1) .
Егер жол мәндердің белгіленген ұзындығымен анықталса, онда оған таңбалардың аз санын енгізген кезде мән көрсетілген ұзындыққа оң жақта қосылған бос орындармен толықтырылады.
Егер жол айнымалы мәндердің ұзындығымен анықталса, онда дерекқордағы таңбалардың аз санын енгізген кезде тек енгізілген таңбалар сақталады, бұл сыртқы жадтың белгілі бір үнемдеуіне қол жеткізуге мүмкіндік береді.
Үлкен көлемдегі (2 Гб дейін) символдық деректерді сақтау мәтіндік деректер түрлерін қолдану арқылы жүзеге асырылады TEXT (16 байт) және NTEXT (16 байт) .
3. Сандық түрлері
1) Бүтін
INT (INTEGER) - бұл түрі ұсыну үшін қолданылады -2 31 - ден 2 31 -1-ге дейінгі диапазонда белгісі бар немесе белгісі жоқ бүтін сандар. Бұл деректер үшін компьютердің жадында 4 байт беріледі. Барлық бүтін сандар, сондай-ақ ондық бөлшектерді сақтайтын типтер IDENTITY қасиетін қолдайды. Идентификация-бұл автоматты түрде көбейтілетін жол идентификаторы.
SMALLINT-бүтін сандарды таңбамен немесе таңбасыз сақтайды -2 15 - ден 2 15 -1-ге дейінгі диапазонда. Бұл деректер үшін компьютердің жадында 2 байт беріледі.
TINYINT-бұл түрі 0-ден 255-ке дейінгі диапазонда мәліметтерді ұсыну үшін қолданылады. Бұл деректер үшін компьютердің жадында 1 байт беріледі.
BIGINT-бұл түрі -2 63 - ден 2 63 -1-ге дейінгі диапазонда мәліметтерді ұсыну үшін қолданылады. Бұл деректер үшін компьютердің жадында 8 байт бөлінеді. INT түрі BIGINT түріне қолданылатын IDENTITY сипатының ерекшеліктерін көрсетеді.
2) Бүтін емес
Яғни ондық нүктесі бар сандар. Бүтін емес деректер екі түрге бөлінеді:
а) ондық.
Ондық мәліметтер типіне DECIMAL немесе Dec және NUMERIC түрлері кіреді. Деректердің бұл түрлері өзгермелі нүкте санының дәлдік форматын дербес анықтауға мүмкіндік береді.
DECIMAL [(дәлдік [, масштаб] ) ] немесе DEC-Ұзындығы 38 санға дейінгі Ондық бөлшектерді сақтайды. IDENTITY қасиеті DECIMAL түріне де қолданылады.
NUMERIC [(дәлдік [, масштаб] ) ] - DECIMAL типінің синонимі.
Дәлдік параметрі осы типтегі енгізілген мәліметтердің максималды санын көрсетеді (ондық нүктеге дейін және одан кейін, ондық нүктенің өзін ескерместен) . Масштаб параметрі ондық нүктеден кейін орналасқан сандардың максималды санын көрсетеді. Қалыпты режимде сервер сізге DECIMAL және NUMERIC (2-ден 17 байтқа дейін) түрлерінде қолданылатын 28-ден көп емес сандарды енгізуге мүмкіндік береді. Әдепкі бойынша бөлшек бөліктің ұзындығы нөлге тең;
б) шамамен (дөңгелектелген) сандар.
Шамамен алынған сандар немесе өзгермелі нүкте сандары ғылыми жазбада ұсынылады, онда сан белгілі бір дәрежеде онға көбейтілген мантистің көмегімен жазылады (Тапсырыс), мысалы: 10e3, +5. 2E6, -0. 2 E - 4. Бұл мән қаншалықты аз немесе үлкен болса да, есептеулердің дәлдігін қамтамасыз етеді.
Нақты түрдегі деректерді анықтау үшін формат қолданылады:
<вещественный_тип>::=
{ FLOAT [дәлдік] / нақты };
Параметр дәлдігі салықтар саны значащих мантиссы сандар.
FLOAT түрі 15 санға дейінгі деректерді ұсыну үшін қолданылады. -1. 79 Е + 308-ден 1. 79 Е + 308-ге дейінгі диапазонда өзгермелі нүктесі бар мәндерді сақтайды. Бұл деректер үшін компьютердің жадында 8 байт бөлінеді.
REAL түрі-өзгермелі нүкте мәндерін -3. 40 E + 38-ден 3. 40 E + 38-ге дейін сақтайды. 7 санға дейінгі деректерді ұсыну үшін қолданылады. Бұл деректер үшін компьютердің жадында 4 байт бар.
4. Күні мен уақыты
Күні мен уақыты алфавиттік-цифрлық деректермен жол түрінде ұсынылады.
Әдепкі бойынша, күнді көрсету үшін Mon dd HH:mmam пішімі қолданылады, мысалы, 'Apr 10 2010 10:23am'.
Деректерді енгізу кезінде мәнді бір тырнақшаға салу керек.
DATETIME
Деректердің бұл түрі 8 байт мөлшеріне ие, яғни екі төрт Байт - 1900 жылдың 1 қаңтарынан бастап өткен немесе әлі келмеген күндер саны үшін 4 байт және түн ортасынан өткен миллисекундтар саны үшін 4 байт.
DATETIME 1753 жылғы 1 қаңтардан бастап күн мен уақыт мәнін жылғы 31 желтоқсан 00:00:00 аралығында 23:59:59, секундтың үш мыңыншы дәлдігімен қамтуы мүмкін. Әдепкі бойынша, datetime 1 қаңтар 1900, түске дейін.
Ескерту . 1 жылдың 1753 қаңтарынан бұрын күндер қолдау таппайды, өйткені ағылшын тілінде сөйлейтін Әлем 1 жылдың 1753 қаңтарында григориан күнтізбесіне көшті, ал Юлиан күнтізбесінің күндерін григориан күнтізбесіне айналдыру өте қиын.
SMALLDATETIME
Деректер түрі, көбінесе datetime-ге ұқсас, бірақ дәлірек емес. Оның мөлшері-4 байт, 1900 жылдың 1 қаңтарынан бастап өткен күндер санына 2 байт және түн ортасынан бастап минуттар санына 2 байт. Күндер 1900 жылдың 1 қаңтарынан 2079 жылдың 6 маусымына дейін минутына дәлдікпен ұсынылуы мүмкін.
5. Ақша түрі
Ақша түріндегі ақпаратты сақтауға мүмкіндік береді. Бұл тип үтірден кейін төрт таңбаға дейінгі мәндердің дәлдігін қамтамасыз етеді.
MONEY -922 337 203 685 477. 5808 дейін +922 337 203 685 477. 5807 мәндерін диапазонда сақтайды. Мән 8 байтты алады.
SMALLMONEY - ақша мәндерін -214 748. 3648-ден +214 748. 3647-ге дейін сақтайды, мөлшері - 4 байт.
6. IMAGE типі
IMAGE өзгермелі ұзындықтың екілік мәнін 2 147 483 647 байтқа дейін сақтайды. Деректердің бұл түрі графиканы, дыбысты және құжаттарды сақтау үшін қолданылады, мысалы, Microsoft Word, Microsoft Excel. IMAGE типті деректерде пайдалану тәсілдеріне көптеген шектеулер бар.
7. Арнайы типтер
SQL Server ортасында бірқатар арнайы деректер түрлері енгізілген. TIMESTAMP-ағымдағы дерекқорда бірегейлікті қамтамасыз ететін автоматты түрде құрылған екілік санды сақтайды. TIMESTAMP типті өрістер жүйелік күнге немесе жүйелік уақытқа байланысты емес TIMESTAMP өлшемі 8 байт және VARBINARY (8) ;
UNIQUEIDENTIFIER -жаһандық бірегей сәйкестендіру нөмірлерін сақтау үшін қолданылады. Бұл барлық дерекқорлар мен барлық серверлерге ғана тән мәндер; --- түрінде ұсынылған, мұнда әр Х 0-9 немесе A-F диапазонындағы он алтылық Сан болып табылады. ;
SYSNAME-нысан идентификаторларына арналған;
SQL_VARIANT (n) - TEXT, NTEXT, IMAGE және TIMESTAMP қоспағанда, SQL Server қолдайтын кез келген деректер түрінің мәндерін сақтауға мүмкіндік береді.
8. Деректер түрлері туралы ақпарат алу
Systypes жүйелік кестесінен деректердің барлық түрлерінің, соның ішінде пайдаланушының тізімін алуға болады:
SELECT * FROM sys types
2. 2. 3 Кіріктірілген функциялар
SQL-мен жұмыс істеу кезінде пайдаланушыларға қол жетімді негізгі кіріктірілген функциялар:
- математикалық функциялар;
- жол функциялары;
- күн мен уақытпен жұмыс істеуге арналған функциялар.
... жалғасы1. Математикалық функциясының кестесі
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz