본문 바로가기
반응형

🌱 Computer Science66

🚀 DB JOIN 정리(INNER/LEFT/RIGHT/OUTER) join(조인) 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법 연결하려면 테이블들이 적어도 하나의 컬럼을 공유하고 있어야함 이 공유하고 있는 컬럼을 PK 또는 FK값으로 사용 ​ 종류 1. INNER JOIN : 내부조인 ->교집합 2. LEFT/RIGHT JOIN -> 부분집합 3. OUTER JOIN : 외부조인 ->합집합 오라클은 OUTER JOIN있지만, MYSQL은 없어서 LEFT조인 + RIGHT조인 ​ ​ 예를 들어 두가지 테이블(T1,T2)이 있다고 하면, 이걸로 join결과를 그림으로 그려보면서 복습해보자 A ID ENAME 1 AAA 2 BBB 3 CCC B ID KNAME 1 가 2 나 4 라 5 마 1. INNER JOIN : 교집합, 공통적인 부분만 SEELCT됨 ​ ID E.. 2020. 1. 21.
SQL 기본문법정리1(DDL/DML/DCL/TCL) 데이터 정의어(DDL) 테이블의 구조를 정의함 CREATE, ALTER, DRTOP,TRUNCATE 데이터 조작어(DML) 데이터 조회/삽입/삭제/변경 SELECT, INSERT, UPDATE ,DELETE 데이터 제어어(DCL) 데이터베이스에 접근권한 GRANT, REVOKE 트랜잭션 제어어(TCL) 트랜잭션 제어명령어 COMMIT, ROLLBACK, SAVEPOINT 1. DDL 데이터정의어 1) 테이블 생성 : CREATE문 create table tr_test( id int not null auto_increment, name varchar(10) not null not null, primary key(id) ) 2) 테이블 삭제 : DROP문 DRTOP table tr_test; 3) 테이블 삭.. 2020. 1. 20.
[Mysql아키텍쳐2] 스레드구조/IO매커니즘/InnoDB 내부구조 내부적으로 어떻게 작동는지 이해하기 출처 RealMysql 서적을 기반으로 이해한 내용 정리 1. Mysql스레딩구조 MySQL서버는 프로세스 기반이 아니라 '스레드'기반 (클라이언트 별로 커넥션을 주면서, 다수의 클라이언트가 연결되는 멀티스레드방식) 1) 포그라운드 스레드(클라이언트 스레드) 몇개? 최소한 서버에 접속된 클라이언트 수만큼 존재 무슨일? 사용자가 요청하는 쿼리문장을 처리하는 역할 어떤 요청이 있는데? 데이터를 MySQL의 데이터 버퍼에나 캐시로 부터 가지고 오는거, 버퍼나 캐시에 없으면 직접 디스크의 데이터나 인덱스 파일에서 읽어오는 작업 스토리지엔진에 따라 포그라운스레드가 하는일이 다름! MyISAM : 읽기 작업을 주로 하기 때문에 '디스크' 쓰기 작업까지 함 InnoDB : 데이터 .. 2020. 1. 20.
[Mysql 아키텍쳐1] 커넥션풀/Mysql엔진/스토리지엔진 내부적으로 어떻게 작동는지 이해하기 출처 RealMysql 서적을 기반으로 이해한 내용 정리 2020.01.19 - [Mysql 아키텍쳐1] 커넥션풀/Mysql엔진/스토리지엔진 2020.01.20 - [Mysql아키텍쳐2] 스레드구조/IO매커니즘/InnoDB 내부구조 2020.01.22 - [Mysql아키텍쳐3] InnoDB특징/MyISAM특징 1. 전체구조 1) 기본적으로 client-server구조 다수의 Client들이 하나의 DB 서버에 연결되는 구조 -> 클라이언트별 Connection 처리 -> 스레드증가 -> 멀티스레드 방식 이때 클라이언트가 접속해서 DB연결할 때 Connection Pool사용 왜 커넥션 풀을 사용해야하지? 한명의 클라이언트가 수행하는 DB커넥션도 많은데 클라이언트가 접속.. 2020. 1. 19.
정형데이터 vs 비정형데이터 (RDBMS VS NOSQL) 데이터를 구분하는 기준 1. 스키마 형태의 유무 (+스키마란? 데이터베이스를 구성하는 요소들 개체,속성,관계, 제약조건 등) 2. 연산가능 여부 (+연산이란? 데이터베이스와 통신하기 위해 SQL언어사용) 정형데이터 스키마 구조라는 특정한 형태를 가지고 있다.(ER모델로 관계를 정의가능) (+스키마 구조? 어떤 데이터가 테이블에 들어가고, 안들어가고를 정의하는 필드집합) 연산이 가능하다(관계 정의가 가능하다)(트랜잭션을 수행함) 마리아/오라클/MySQL과 같은 RDBMS에 저장합니다. 비정형데이터 스키마 구조라는 형태 없음(텍스트나 영상데이터처럼 특정한 형태가 없음) 연산도 불가능합니다.하지만 필요한 형식으로 저장이 되는 유연한 구조로 몽고디비와 같은 NoSQL에 저장합니다. 반정형데이터 정형데이터처럼 특.. 2020. 1. 19.
[NetWork/Web] 쿠키와 세션차이점 (+캐시) 쿠키 : 사용자의 브라우저에 저장 http통신을 할 때 http 헤더에 포함된 파일들 (이름 값 만료기간, 경로정보) 해당 사용자의 컴퓨터를 사용하기만 하면 쿠키에 입력된 값을 쉽게 확인할 수 있음->보안성낮음 클라이언트->서버 : request 서버->클라이언트 : 쿠키가 없음, 통신상태를 저장한 쿠키 response 클라이언트가 이 정보를 저장하고 있음 ->쿠키 다음 연결부턴 클라이언트->서버 : 쿠키를 넣어서 요청 세션 : 서버에 저장되는 쿠키 클라이언트와 서버의 통신상태, 중요한 데이터들 저장 브라우저를 종료할때까지 유지됨 서버에 직접 저장되서 보안성이 높음 -->로그인정보유지에 사용되는 정보 클라이언트->서버 : 세션id발급 서버->클라이언트 : 세션id를 쿠리를 이용해서 저장 클라이언트가 다시.. 2020. 1. 17.
[NetWork/Web] get방식 vs post방식 차이점 HTTP 웹상에서 클라이언트와 서버간에 요청/응답으로 데이터를 주고받는 프로토콜 클라이언트가 HTTP 프로토콜을 통해서 서버서에 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송한다. 이때 HTTP메소드 : 서버가 요청을 수행할 행동 그 중 하나인 GET방식 POST방식 공통점 클라이언트와 서버간에 요청/응답을 주고받는 메소드 중 하나 HTTP프로토콜을 사용하여 웹페이지->서버로 정보를 전송하는 방식 GET 방식 URL의 끝에 전송할 데이터의 파라미터를 붙여서 서버로부터 정보를 요청 요청을 전송할때 필요한 데이터를 쿼리스트링을 통해 전송 서버로부터 정보를 '조회'할때 사용 사용예시 : 로그인 -> 로그인정보를 서버에 select하는 용도, 전송해서 일치하는지 확인 EX) www.example-.. 2020. 1. 17.
OLAP/OLTP/DW/ETL 용어정리 1.OLTP: 트랜잭션 기반으로 하는 데이터작업 2.OLAP : 데이터들을 효과적으로 활용하기 위해 여러 관점에서 분석해서 정보화 하는 작업 *둘의 차이점 OLTP는 현재 업무의효율적인 처리에만관심이 있는데 그래서 최대목적은 데이터에 대한 무결성을 확보하는 것이다 트랜잭션은 동시에 수백,수천명의 사용자들이 수행하기 때문에. ex)금융의 계정계작업, 잘못해서 10원이라도 다른 계좌에 이체하면 손해가 엄청나다. 그래서 데이터의 분석보다는 트랜잭션 성능 및 데이터 무결성 확보를 위해 설계한다 OLAP는 의사결정에 도움이되는 데이터분석에 관심이 있음 데이터의 무결성을 확보할 필요가 없다 이미 무결성이 확보된 데이터를 ETL작업한 상태로 저장한 DW에서 이루어지기 때문에 솔루션 : CRM, 데이터웨어하우스, 데이.. 2020. 1. 17.
[NetWork] 도메인/DNS서버/CNAME 도메인 우리가 일상에서 웹브라우저에 입력하는 주소 중 우리가 알기 쉽도록 지정된 모든 주소 IP주소 실제 도메인주소를 웹에 입력하면 숫자로 구성된 주소로 인식함 ex) google.com으로 입력하면 여기에 해당하는 ip주소를 인식해서 컴퓨터에 접속하게 됨 DNS서버 (domain name system) 특정 컴퓨터의 주소를 찾기 위해서 (IP주소를 다 기억하기 어려워서 DNS서버 나옴) ip주소-> 도메인이름, 도메인이름 ->ip주소 변환하는 기능 사람이 이해하기 쉽도록 그래서 IP주소와 도메인이름을 기억하는 기능, 이름을 물어보면 IP주소를 알려주는 기능을 함 ex) 웹에서 naver.com 입력하면 DNS서버에서 이걸 IP주소로 바꾸고, IP주소로접속하게함 웹호스팅 자신의 홈페이지를 보여줄 수 있는.. 2020. 1. 15.
[OS] 메모리구조 : 메소드, 힙, 스택 정리 JVM이 메모리를 OS에게 요청하면 OS는 메모리를 할당한다. 이때 받은 메모리를 클래스영역,스택영역,힙영역으로 메모리 구조를 나눌 수 있다. ​ 클래스 영역은 프로그램이 실행하기 위해 바이트코드를 로드하는 곳으로 class파일을 찾아서 메모리에 로딩한다. ​스택 영역은 지역변수와 매개변수를 저장한다. 지역변수 : 메소드안에서 선언한 변수 매개볏누 : 메소드를 선언할때 아규먼트로 넣는 변수 이 변수들은 선언된 블록안에서 유효하기 때문에 메소드가 호출되면 저장되고, 메소드가 끝나면 스택에 저장되어 있던 변수를 제거한다. 힙영역은 new로 생성된 인스턴스 변수를 저장합니다. 그리고 JVM이 중단되거나 가비지 컬렉터가 실행되기 전까지 영구적으로 저장됩니다. 스택영역에 주소를 저장하고, 힙영역에 주소에 해.. 2020. 1. 15.
728x90