->
MSSQL Sever 2017 Express
SSMS
다운받기
.NET 컴퍼런스가 열렸움!!!! 3일간 진행되고 있움!
.NET Core 3.0이 정식으로 발표됨! 강사님이 기다리셨움
- 기본적으로 window os에서만 돌아갔는데 현재는 잘 안맞아서 cross platform? 으로 새로 맞췄음
- mono project라는게 있었는데 이게 오픈소스 개발자들이 linux에서 .net을 구현하기위해서 개발함!
-> 안드로이드랑 ios앱을 c#을 이용해서 개발할 수 있는 앱을 만들음!! (자말?? 사마린???)
- c#으로는 데스크탑 애플리케이션을 만드는 경우가 많을것임! (회계에서는 c# winform을 사용함)
- .Net -> desktop(사실 비중이 되게 큼! 블루오션), web, cloud, mobile, gaming, IoT, AI
-> IoT (라즈베리파이-좁은의미, 아듀이노) - 파이썬을 많이씀 (비전문가도 쉽게 접할 수 있기 때문에)
-> ML .NET (굉장히 강력함!! C#으로 AI만들면 좋음!)
- spring (자바에서 웹을 개발하는 플랫폼)
- 마이크로 서비스 (서로 결합된 모듈들을 각각의 (여러개의 작은)독립적인 프로그램으로 만듦!)=>결국 큰 앱
- gRPC - (웹 API보다 성능이 좋음)
- Worker Service (웹에서 쓰기 어려운걸 쓰게해줌)
유투브 - keynote (최신얘기) - 은근슬쩍 자소서, 면접에 PR해보기 ㅎㅎ
(인공지능 에어컨,, ,ㅎ 사용자의 평균 시간 측정)
서버를 만들기위해선 두가지 기술이 필요함!
1. 데이터베이스 - 우리는 2일
2.
[데이터베이스] - DBMS
- SQL Server
- Oracle
- MySQL (리눅스나 파이썬, 소규모 영세 회사,,, 네이버가 쓰고있음 ) -> 죽일라고 오라클이 인수함,,ㄷㄷㄷㄷ
- Maria DB.. (무료고 좋음 함 써보셈)
- 스키마 (타임이 정해져있는 구조)
-> 관계형 데이터베이스들은 고정되어 있으나 고정안된건 low SQL????
최근에 비정형 데이터가 많아지면서 ..
- SQL의 특징
4. 대화식 언어 : 영어 문장 읽는것처럼 자연어랑 거의 가깝다는 뜻
5. 디비 마이그레이션은 되게 힘든 작업임 (SQL Server -> ORACLE 이렇게 옮기는거)
설치
1.
2.
3.
- 혼합모드는 아이디와 계정사용 (나는 1로 했음)
- 윈도우 인증모드는 내 노트북에서만 접근 가능
4. 설치중
5. 설치완료
=> 다 깔고나면 밑에 검색에
SQL SERVER 2017 구성관리자 누르기
* 여기서 SQL server -> MSSQL_SERVER 다시시작 이거 하는게 중요함!!!!
- TCP 포트를 1433 안하는게 회사 원칙임 이렇게하면 욕 바가지로 먹음!!!!!!!!!!!!!!
- 그리고 이렇게 다시 시작해주어야함
localhost = 127.0.0.1 = .
5. 막간을 이용해서 관리도구 받기
- 아래 저걸 눌러도 되고 SSMS 최신버전 받아두댐!
ssms - sever 관리자로 접속하기
(강사님컴접속하기) - 내 인스턴스랑 포트 가 같다면 저거 다 생략가능!
- 강사님 컴 3512
방화벽 -> 고급설정 -> 인바운드규칙 -> 새 규칙 -> 포트 -> tcp -> 특정로컬포트 : 1433 -> 연결 허용
밥먹고와서 다시시작~~~~
시행착오를 겪고나서의 모범사례 "BEST PRACTIVE" - 코딩할때 쓰이는 용어
- 폭포수모델 > 관리자들을 관리하기 위한 모델임
- 데이터베이스 하나를 클래스 단위로 만드는게 좋은 프로그래밍!!!
1. 만들어보기 (데이터베이스 -> 새 데이터베이스)
Chinook - 샘플데이터베이스
- > 이정도 디비만 제대로 설계할 줄 알면 좋음!
2. 새 다이어그램 만들기
3. 새 테이블 만들기 (아티스트를 저장하는 테이블)
마우스 우클릭 > 새 테이블 만들기
4. 기본키 설정하기
* 다른 값들과 구별할 수 있는 것을 key라고 함
* bit = boolean
decimal = numeric => 사실이 두개는 정수임
real = (c) float
float = (c) double
datetime => 시각을 나타냄
-> 디비에서는 정확이 0.1을 표현해야하기 때문에 정확히 자료형이 만들어져있음!
decimal(전체숫자개수,소수점몇자리)
smalldatetime -> 0들어가면 1.1.1900 (최소값) - 이전의 날짜는 저장할 수 없음!!!
n이 안붙은거는 (char, varchar) 쳐다도 보지마셈!!!!!
n이붙은것들은 다 Unicode 타입 -> 이걸 쓰세요
- 아주 미세하게 nchar가 성능이 좋다고 알려져이쓴데 nvarchar를 쓰셈 (???)
-> nchar(100)의 경우 안쓰는곳은 다 문자로 채워버림!!! nvarchar(100)은 공간낭비 ㄴㄴ 걍 쓰셈
5. 저장하기
6. 값 입력해보기
7. 사실 이름도 null 허용을 하면안되긴함
- 디폴트는 null이지만 퇴사자 처리같은것이 남아있을때 간혹 허용하는 경우들이 있음!
- 빈문자열 /= NULL(답변을 거부)
저장
* 보기 > 속성창
- 아이디사양을 예로 바꾸면 디비를 입력시킬때 알아서 1, 2, 3, 이런식으로 만들어줌!
=> 지금 보고있는건 관리자용 툴임!
****
- 수정이 안될것임!!
- 그래서 임시로 ArtistId Null값을 예 해주고
- 다시 이렇게 해줌 -> 그러면 저장 할 수 있음!!
** 왜래키 설정!!!
-> ArtistId > 관계 > 해서 ~~ 잘 설정하면됨
* 정규화를 위반함 근데 이렇게 하는 경우도 있음 -> 성능의 문제때문에!! 할때가 있음~!
=> 비정규화, 역정규화, 반정규화 - 정규ㄹ화를 다하고나서 하는게 역정규화인데 처음부터 하는건 잘못된 것
- Playlist와 Track이 있을때
예를들어, 감성찢는발라드, 드라이브 노래 이런식으로 묶음을 하고싶을때는
PlaylistTrack 이런식으로 Mapping table을 만든다
-> 근데 아래와 같은경우 같은 값의 입력이 무슨 의미가 있을까? 제약을 주자
- 복합기본키 만들기
- 이런식으ㅗㄹ 기본값을 0으로 해주면 null을 예로 바꾸고 값을 다 입력해야하는 수고를 덜 수 있음!
강추노래
* 강추 노래를 할 때 두가지 묶음안에 둘다 들어갈 수 있지만 서로의 묶음에서 모두다 강추일지는 모름
그렇기때문에 PlaylistTrack 텡티블 안에 recommended 를 넣어줌!
* 데이타 타입을 bit대신 char(1) (N,Y)로 하는 경우가 많은데 이는 굉장히 잘못됐음!!!!
-> Gender같은 경우는 IsMan bit 타입 이런식으로 표현 할 수 있음! - 명백한 표현이 되도록 할 것!
ex) 도서관 - 두권의 같은 책이 있을 수 있으므로 아래와 같은 설계는 잘못됨!
-> 이런식으로 바꿔주어야함!!
+) Book 안에 BookMetaId가 와야함 반대는 절대 안됨!
-> 전체적으로 이런식으로 설계가 되어야함
장르
* 장르라는 테이블을 따로 만들자!
-> nullable도 관계를 잡을 수 있음!
ex ) 회사의 계층구조
- 이런식으로 할 수 있지만 60으로 잘못 입력되는건 막을 수 없음 그래서!
"자기참조테이블"을 만드는 것~!!!!
Chinook의 샘플 데이터베이스
https://github.com/lerocha/chinook-database
> 새쿼리만들기 > 붙여넣기 > 실행 > 새 데이터베이스 만들기
- 아까 했던 직원 관계형,,,,,!!!
관계 누르고 > F3 > 테이블 및 열 사항 > 관계볼 수 있음
-> 여기선 고객마다 전담하는 직원을 한명씩 두는 의미로 볼 수 있음
Invoice
- InvoiceLine 안에있는 UnitPrice는 얼마에 샀는지임! (뭐세일해서삿을수도있고 그런점~)
Track 안에있는 UnitPrice는 권장가격!
c# 의 엔티티 프레임워크... 하면 db 할때,, ~~ 도 못하는데 c# 쓰면 이게 됨!
모델링실습 - 오늘머먹지
'Archive' 카테고리의 다른 글
0926 C#과 DB 연동 프로그래밍 : EWIG 01 (0) | 2019.09.26 |
---|---|
0925 서버프로그래밍 MSSQL_SERVER DB (0) | 2019.09.25 |
0906 10-인터페이스 (0) | 2019.09.06 |
0906 09-가상메서드-추상메서드 (0) | 2019.09.06 |
0906 서버프로그래밍 기초3 (0) | 2019.09.06 |