Language/SQL
[MySQL] Memo
W3School에서 제공하는 MySQL 자료를 보고 있다. 기초적인 내용들을 깔끔하게 설명해주고 있어서 메모해두었다. - 현재 Data Type에 대해서 보고 있는 중.. https://www.w3schools.com/mysql/mysql_datatypes.asp MySQL Data Types W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com
삭제 플래그는 언제 써야 할까?
이 포스트를 DB 카테고리에 넣어야할지, REST API 카테고리에 넣어야할지 모르겠다. 갈 수록 카테고리들이 서로 연관되다보니 그냥 하나로 합쳐야하나 고민이 된다... 데이터를 삭제할 때에는 1. 논리 삭제 2. 물리 삭제 두 가지 방법을 사용할 수 있다. * 관련 포스팅 : https://server-engineer.tistory.com/323 링크에선 물리 삭제는 일반적으로 개인정보보호가 필요한 경우에 사용한다고 했는데, 실제로 현장에 있을 때 회원 정보와 같은 민감 정보는 법에 위촉되지 않는 선에서 약관에 따라 일정 기간 동안 가지고 있다가 시간이 지나면 영구 삭제하는 것으로 알고 있다. 논리 삭제는 플래그 변수를 디비에 하나 추가해서 이게 삭제된 것임을 알려주는 것인데, 전에 기획을 할 때 개발..
RDBMS 종류 및 사용법 아카이빙
H2 database https://yjkim-dev.tistory.com/m/3 https://lob-dev.tistory.com/m/entry/H2%EC%9D%98-LocalIn-Memory-%EC%99%80-ServerTCP-%EB%AA%A8%EB%93%9C - 인메모리란 ? https://www.sap.com/korea/insights/in-memory-database.html - 인메모리 컴퓨팅 https://m.blog.naver.com/gkenq/10183400845 - 인메모리 DB란? 데이터를 하드디스크가 아니라 메인메모리에 저장하는 데이터베이스
DBMS - 정규화 vs 비정규화
| 정규화와 비정규화에 대한 개념이 정리된 포스팅이 있어 가져와 보았다. https://owlyr.tistory.com/20 [데이터베이스] 정규화 vs. 비정규화(반정규화) 💡 정규화 vs. 비정규화(반정규화) 데이터베이스 정규화 데이터베이스 비정규화 데이터베이스 비정규화(Denormalization, 반정규화)란 무엇인가? 장점, 단점 비정규화 대상 주의점 정규화(Normalized)란 owlyr.tistory.com | 간단 요약 정규화란, RDBMS에서의 데이터의 중복을 최소화하는 작업을 말한다. > 정규화를 많이 하게 되면 조인을 많이 해야하는 단점이 있다. 비정규화란, 반면 의도적으로 데이터를 중복시키거나, 데이터를 그룹핑함으로써, 성능을 최적화하는 작업이다.
DBMS 내부 처리 순서 - select / from / where / group by / having / order by
SQL 문법 실제 처리 순서 1 SELECT count(*) as c FROM member 테이블에서 직업이 개발자인 사람들을 추출 2 FROM member SELECT 3 WHERE job = '개발자' WHERE 4 GROUP BY nationality GROUP BY 국적에 따라 그룹핑 5 HAVING avg(salary) >= 3000 HAVING 평균 연봉이 3000 이상인 경우로 한정 6 ORDER BY c ORDER BY 순서 지정 ** WHERE와 HAVING의 차이점 WHERE HAVING 위치 FROM 뒤에 GROUP BY 뒤에 언제 SELECT한 레코드의 조건 정의 그룹화되어 만들어진 레코드 집합의 조건 정의 [ 참조 및 출처 ] 부트캠프 수업 참조 https://m.blog.nave..
[데이터베이스 설계] Exerd를 통해 설계해보기
| Exerd를 사용해 설계해보기 - 부트캠프 실습 후 간단하게 배운 내용을 복습하고자 사용법만 간략히 정리하려고 한다. * 참고로 Exerd를 설치하는 방법은 이전 포스팅에서 다루었다. 1. 도구 설명 no 설명 비고 0 Logical / Physical 토글 버튼 1 테이블 생성 칼럼 추가 : [Alt] + [Enter] 2 - 점선 : 비식별 관계 >> pk를 추가하여 연결 - 실선 : 식별 관계 >> fk로 추가하여 연결 3 마우스 우측 클릭 후, [논리/물리 같이 보기] 버튼 터치하면 함께 보기 가능 4 도메인 및 데이터 타입 등에 대한 설명 보기 2. 데이터 타입 및 제약 조건 지정하기 (1) 하단의 데이터 타입 끌어오기 - 하단에 보면 샘플로 만들어진 데이터타입이 이미 있는데 이걸 끌어오는 ..
[데이터베이스 설계] 데이터 모델링
| 모델링이란? - 모델링이란? 비즈니스 목적에 맞게 현실세계의 데이터를 도식화하는 것 - 왜 모델링을 하는가? 비즈니스 목적에 부합하면서도, 효율적인 자원 관리를 하기 위해 - 모델링의 특징 추상화 현실 세계의 실재를 도식화 하는 과정 단순화 현실 세계의 현상을 약속된 규약에 의해 제한된 표기법 및 언어로 쉽게 표현하는 과정 명확화 모두가 이해할 수 있도록 모호함을 제거하고 정확하게 현상을 기술하는 과정 - 모델링을 바라보는 다른 시각 모델링 데이터 업무의 내용 (무엇을 - Data). - 요구사항 X는 어떤 데이터와 연관되는가? 프로세스 업무의 처리 (어떻게 - Process). - 요구사항 X와 연관된 기존 시스템은 뭔가? - 요구사항 X를 위한 전반적인 프로세스는 뭔가? 상관 관계 데이터와 프로세..
데이터 처리 - View, 함수/프로시져, 트리거
| VIEW - 가상의 읽기 전용 테이블 - 장점 : - 독립성 : 테이블 구조가 변경되어도 뷰를 쓰는 응용 프로그램은 변경하지 않음 - 편리성 : 복잡한 쿼리를 뷰로 생성하여 코드를 간결화 - 보안성 : 계정 권한 수준에 따라 노출되지 않아야 하는 데이터를 숨김 처리 할 수 있음 -- 기본 구문 CREATE VIEW 뷰명 AS SELECT * FROM 테이블명 -- 예시 create view v_member as select m.member_type, m.user_id,m.name, md.mobile_no, md.marketing_yn, md.register_date from member as m join member_detail md on m.member_type = md.member_type and..
데이터 처리 - ALIAS, JOIN, 내장함수, 페이징 처리
| ALIAS와 * (애스터리스크) - ALIAS : 별명, 별칭 - * : 전체 select m.id as 회원아이디, m.password as 비밀번호, m.name as 회원명 from member as m; | JOIN문 - JOIN만 적히는 경우 INNER JOIN이 사용된다. INNER JOIN 키 값 기준 데이터 결합 LEFT JOIN 키 값 기준 데이터 결합 + 좌측의 나머지 RIGHT JOIN 키 값 기준 데이터 결합 + 우측의 나머지 FULL JOIN LEFT데이터 X RIGHT데이터 - 수업에서 제공되었던 테이블은, MEMBER와 MEMBER_DETAIL 이었는데, 이와 같이 회원 정보를 간편 정보 / 상세 정보로 나누어서 필요에 따라 테이블을 조인하는 식으로 사용한다고 한다. -- ..
데이터 처리 - CRUD
| CRUD - 소프트웨어가 가지는 기본적인 데이터 처리 기능 - CRUD는 MariaDB/MySQL, ORACLE 모두 동일한 문법을 사용하는 것으로 확인됐다. (아래 코드 비교) 구분 의미 SQL REST API WHERE 필수 CREATE 삽입 INSERT PUT/POST X READ 조회 SELECT GET X UPDATE 갱신 UPDATE PUT/PATCH O DELETE 삭제 DELETE DELETE O -- CRUD -- INSERT INSERT INTO bootcamp_member2 (name, email, mobile_no, password, marketing_yn, register_date) VALUES ('테스트3', 'test3@gmail.com', '01022223212', '22..