Entity-Relationship Model/2 — Transcript
Full transcript
- 0:00[Music]
- 0:15welcome to module 14 of
- 0:19database management systems
- 0:21in the last module we started our
- 0:23discussions on the entity relationship
- 0:25model
- 0:26we will continue that in
- 0:28this module as well and actually
- 0:31conclude it in the next module so these
- 0:34are the
- 0:36items that we had discussed in the last
- 0:38module
- 0:39in the present one
- 0:42we will first illustrate the
- 0:44entity relationship diagram notation
- 0:47that graphical notation for
- 0:50er model how
- 0:51nicely this can be shown in terms of
- 0:54certain diagrams
- 0:55and
- 0:57then we will explore how er models can
- 1:00be
- 1:01translated to relational schemas which
- 1:04is a basic step
- 1:06of
- 1:07the logical design
- 1:11so these are the
- 1:13topics so we start with the er diagram
- 1:17naturally the first thing to represent
- 1:19in
- 1:20an er model is the entity set every
- 1:23entity set is represented by a rectangle
- 1:26on the top
- 1:28we write the name of that entity set as
- 1:30you can see examples here the instructor
- 1:33and student are the two entity sets
- 1:35and below that we write
- 1:37the names of the attributes that are
- 1:40involved
- 1:41and we underline the attribute or
- 1:43attributes that form the primary key of
- 1:46that entity site
- 1:50a relationship between ah two entity
- 1:53sets is represented by a diamond
- 1:57and two connecting lines to the two
- 1:59entity sets so here it says that advisor
- 2:03is a relationship between entity set
- 2:06instructor and entity set student
- 2:09trying to
- 2:10convey the real world situation that
- 2:14students are advised by
- 2:17the instructors or students have
- 2:19instructors and so on
- 2:24as we had mentioned that relationships
- 2:27could also have attributes
- 2:29so if the advisor relationship has an
- 2:31attribute date
- 2:33then it will be tagged to the advisor
- 2:36relationship
- 2:38with
- 2:39the attribute coming as a
- 2:41within a rectangle and attached to the
- 2:43name of the relationship
- 2:47by a dotted line
- 2:49so this shows that advisor is the
- 2:50relationship between instructor and
- 2:52student
- 2:53and the advisor relationship has an
- 2:55attribute date
- 2:59it is possible that
- 3:01the
- 3:02relationship
- 3:04that hold between
- 3:06two entity sets
- 3:08can be can use
- 3:11entity sets which are same that is it is
- 3:13possible that a set is related to itself
- 3:17so as an example we show the entity set
- 3:21course
- 3:22which has a relationship
- 3:25prereq prerequisite
- 3:27which takes a course id
- 3:30and relates it to another course id
- 3:33called the prerequisite id
- 3:35because obviously a co if a course has a
- 3:37prerequisite then that prerequisite
- 3:40itself is another course id which must
- 3:42occur in this table itself
- 3:45so in this case if you can see that
- 3:48unlike the earlier case ah the
- 3:51prereq id is not actually a field of
- 3:53this ah
- 3:55relation course so we say these are
- 3:57rules
- 3:58so we say the role
- 4:00that prereq relate
- 4:03from the course
- 4:06relation to itself
- 4:09are
- 4:11course id and
- 4:13id
- 4:14where in the actual table both of them
- 4:17relate to course id but prereq will
- 4:21pair them to show
- 4:23which course has what prerequisite
- 4:28and we often need this kind of we have
- 4:31seen
- 4:32ah similar instances of this while we
- 4:34treated dealt with the recursive queries
- 4:37in databases the source destination of
- 4:41ah
- 4:42airlines problem that we discussed has
- 4:45similar kind of relationship structure
- 4:47so you can think about a relationship
- 4:49flies
- 4:51from the set of ah
- 4:54source to this set of destination
- 4:58and basically this
- 4:59these two sets the places
- 5:02source places in the destination place
- 5:03are necessarily the same set the same
- 5:06relation
- 5:08there could be a constraint on the
- 5:10cardinality so
- 5:11the line that links the relationship
- 5:15diamond with the rectangles of the
- 5:19relations rectangles of the entity sets
- 5:24those lines could have an arrow at the
- 5:27end or may not have an arrow at the end
- 5:30so
- 5:31if it has got an arrow then it means
- 5:34that suppose it has an arrow it means
- 5:37one
- 5:38and if it does not have a arrow if it is
- 5:40simple then it means many
- 5:42so using this notation we can
- 5:45designate
- 5:47one to one one to many these all
- 5:49different kinds of
- 5:51cardinalities that we had discussed
- 5:54so for example if we are showing this
- 5:57ah arrow on both hands both ends of this
- 6:01relationship advisor then it means that
- 6:05it is a one to one relationship because
- 6:07there is an arrow here so this is one
- 6:11there is an arrow here so this is one
- 6:14there is an arrow here so this is one
- 6:17which means that a student is associated
- 6:19at most
- 6:21with at most one instructor
- 6:23and it also means that
- 6:26an instructor is associated with at most
- 6:28a student
- 6:30this may not be a reality this usually
- 6:31is not the reality but this we are just
- 6:34showing this as an example
- 6:36so
- 6:37if the student
- 6:39instructor relationship
- 6:42advisor relationship is one to one
- 6:45then this is how we will denote it
- 6:52if it is
- 6:54one to many
- 6:57so
- 6:59which side is one this side is one
- 7:01and this side is many
- 7:03so it is one too many from instructor to
- 7:07student which says that every student
- 7:10has at most one instructor
- 7:12and an instructor may have several
- 7:16students it could be null also it could
- 7:18be none also
- 7:20so for an instructor here there are many
- 7:23students but for a student here there
- 7:25are only at most one instructor so its
- 7:28one to many and this is how we designate
- 7:32a similar thing will happen if i read
- 7:35the same relation in the other direction
- 7:39so instructor to student was one to many
- 7:42so student instructor also drawn in the
- 7:44same way because this is
- 7:46ah
- 7:48this is the one side
- 7:51this is the one side and this is the
- 7:52many side so it situation is the same
- 7:55so
- 7:56if we read from the student to
- 7:58instructor then it is also designates
- 8:00the many to one relationship
- 8:04and finally we can have a many to many
- 8:06relationship where there is no arrow at
- 8:08either end which means that an
- 8:10instructor is associated with
- 8:13several possibly none
- 8:14no student via the advisor relation and
- 8:17the student may also have several
- 8:19instructors by the advisor relationship
- 8:21now you can you can certainly
- 8:23ah
- 8:24figure out that in the particular case
- 8:26of student
- 8:28instructor scenario of providing advice
- 8:31one to one as well as many too many are
- 8:33not
- 8:34the usual real world scenarios
- 8:37but ah these are we have just using to
- 8:41show you how to model this usual
- 8:43scenario would be from instructor to
- 8:44student it is one too many relationship
- 8:51a relationship could be
- 8:55total or it could be partial
- 8:57if a
- 8:58if one side of the relationship or
- 9:00whichever side of the relationship is
- 9:03total
- 9:05then we draw
- 9:06a double line so you can you can see
- 9:09here in the diagram we are drawing a
- 9:10double line which means that in the
- 9:13advisor relationship the involvement of
- 9:15the student is total which means that
- 9:18every student
- 9:20must feature in the advisor relationship
- 9:22or in other words every student must
- 9:25have an advisor
- 9:27but it is
- 9:31partial on the
- 9:35instructor side
- 9:37because every instructor
- 9:40may not have a student
- 9:46so this double line
- 9:48shows that reality
- 9:53some entities may not participate in any
- 9:55relationship is a partial
- 10:00now
- 10:01this
- 10:02constraints the cardinality constraints
- 10:04can be made more precise by actually
- 10:07using numbers
- 10:09you can actually say on the two sides of
- 10:11the relationship
- 10:12that at the minimum how many entities
- 10:14should relate and at the maximum how
- 10:16many entities can relate
- 10:19for example if we are saying
- 10:21that ah
- 10:24we are on the right hand side here if
- 10:26you see we are saying
- 10:27that
- 10:28it is maximum minimum is 1 maximum is
- 10:31one
- 10:32which what does it say it says that
- 10:35every student
- 10:37the minimum is one so every student must
- 10:39feature in the advisor relationship
- 10:42so
- 10:44in real world every student must have
- 10:47a an advisor must have an instructor
- 10:51it says maximum is one which says that
- 10:54every student can have at most one
- 10:56instructor
- 10:58so this one to one one dot dot one says
- 11:00that every student must have at least
- 11:02one instructor every student must have
- 11:05at most one instructor so together it
- 11:07says that every student must have
- 11:09exactly one instructor
- 11:12whereas if i if you see on this side it
- 11:15says that 0
- 11:17dot dot star star stands for no limit
- 11:22it can be anything any number
- 11:24so the minimum is 0 which means that an
- 11:26instructor may not have a student
- 11:29and star says that it the instructor can
- 11:31have any number of student
- 11:34naturally 0 1 2 3 4 2 or 200 so any
- 11:38instructor can advise any number of
- 11:40students
- 11:41so these kind of precise
- 11:44number constraints
- 11:46can be put in addition to the one to
- 11:50many or one to one many to many kind of
- 11:53notations in the diagram so when we do
- 11:56that we have the precise cardinality of
- 11:58the complex relations that exist
- 12:11next we take a look into the handling of
- 12:14the complex attributes
- 12:16the first you remember that first kind
- 12:19of complex attribute is one which is
- 12:21composite
- 12:22say name which has first name middle
- 12:24name
- 12:25initial
- 12:27middle initials and
- 12:29last name
- 12:36so
- 12:38when we have that then
- 12:42the way we represent is
- 12:44at the
- 12:46actual name of the attribute is at the
- 12:48outermost level
- 12:50and its
- 12:52composites are written with
- 12:55certain
- 12:56shift on the left so these all say that
- 12:58these are composites of name
- 13:01so it this says that street city state
- 13:04zip are composites of address
- 13:07and further indentation say that these
- 13:10are composites of straight
- 13:12so
- 13:13this is how graphically we show
- 13:15that
- 13:16how complex attributes feature
- 13:24now
- 13:25let us go back to discussing the weak
- 13:27entity sets
- 13:29in the ear diagram a weak entity set
- 13:32is represented by a double
- 13:36rectangle you remember the section is a
- 13:38weak entity set and why is it so
- 13:40because a same course may have
- 13:44two different i am sorry two different
- 13:46courses may have the same section id
- 13:49semester and year that is two courses
- 13:51two or more courses
- 13:53may run
- 13:54sections by the same name in the same
- 13:56semester and the year
- 13:58so a section cannot be uniquely
- 14:00identified by these three
- 14:03attributes
- 14:04it needs a relationship
- 14:07with the identifying entity set course
- 14:12to be specific the course id
- 14:14so that the entities here in can be
- 14:17uniquely specified
- 14:19so since this has happened so we
- 14:21designate that by putting this
- 14:25double rectangle around the weak entity
- 14:28set section
- 14:32we underline the discriminator of a weak
- 14:34entity set with dashed line so you
- 14:37remember these are the discriminators
- 14:40because given the identifying
- 14:44attribute in the identifying set
- 14:46these are the
- 14:48attributes which distinguish
- 14:51different tuples of section
- 14:54so
- 14:55they are not shown
- 14:56with solid underline they are shown as
- 14:59dotted underline dashed underlined so
- 15:02that you can make out that this is the
- 15:03weak entity set and these are the
- 15:05discriminators
- 15:10the relationship set connecting the weak
- 15:12entity set to the identifying strong
- 15:14entity set is also
- 15:16so this the moment you have weak entity
- 15:18set you know that there has to be a
- 15:20relationship
- 15:21to the strong entity set which
- 15:23identifies it so that relationship sec
- 15:26course which say
- 15:28course id against this
- 15:31binds that
- 15:32is
- 15:33designated with a double diamond so that
- 15:36you know that this is
- 15:38the
- 15:38identifying relationship
- 15:41between a weak entity set and the
- 15:43corresponding strong entity set
- 15:48and once that happens then the primary
- 15:50key becomes
- 15:52the discriminators of section the weak
- 15:55entity set and the primary key of the
- 15:59identifying a strong entity set the
- 16:02course
- 16:03so that forms our
- 16:06final
- 16:07primary key for this entity set section
- 16:10mind your course id is not
- 16:12a part of
- 16:14this relation but it actually plays the
- 16:16role
- 16:17through this section id
- 16:19as a key for the section
- 16:22relation without which the section
- 16:25entities in the section cannot be
- 16:27uniquely identified
- 16:30so having said that this is a the er
- 16:33diagram of the university enterprise
- 16:36some of the points that you could take a
- 16:38look at
- 16:39this is the weak entity set we have just
- 16:41seen this is the
- 16:44relationship to the identifying strong
- 16:46entity set
- 16:49this is a prerequisite
- 16:51multi role
- 16:52relationship
- 16:54ah this you can see is a is a total
- 16:59involvement
- 17:00so why is it a total involvement because
- 17:02every section must have at least
- 17:05one teacher so there cannot be a section
- 17:08which does not feature in the teachers
- 17:10relationship
- 17:11similarly every section must get a time
- 17:14slot
- 17:15where
- 17:16the classes for that section is held
- 17:18so every section must feature in the sec
- 17:21time slot so these are the
- 17:23similarly it must get a class room so
- 17:26these are all different
- 17:28total ah
- 17:31involvements that we total roles that
- 17:33you can see we can see some of that
- 17:34elsewhere as well
- 17:36for example you can see it here we can
- 17:38see it here
- 17:39because in between instructor
- 17:42and the department the ins department
- 17:45relationship
- 17:46certainly every instructor must have a
- 17:48department so it is total
- 17:50but it is not the same for the
- 17:52department every department will not
- 17:54have instructors
- 17:56so
- 17:57this is how if we can you can go through
- 18:00carefully and
- 18:01for example this is another which is
- 18:03total which means that every course
- 18:06need a department you cannot run a
- 18:08course which does not have a department
- 18:11so
- 18:12this is how we can see that how the er
- 18:15diagram the first conceptual level
- 18:17diagram of a very simple university
- 18:20enterprise is being designed
- 18:22following the notions and symbols of er
- 18:26model that we have already developed
- 18:30next comes ah the part where from this
- 18:33model which is primarily diagram based
- 18:35we have to really go to the relational
- 18:37schema which is names of relations and
- 18:40attributes which is
- 18:41ah pretty much a straight forward job so
- 18:44entity sets and relationship sets have
- 18:46to be represented in terms of relational
- 18:49schema what is the beauty of the
- 18:52er model and the relational schema is
- 18:54that that when you reduce the entity
- 18:57relationship model to relational schema
- 18:59both entity sets and relationships
- 19:02sets both of them turn out to be
- 19:04relational schemas
- 19:06so that the database finally can be
- 19:08represented simply as a set of
- 19:11schemas each one of which must have a
- 19:15set of identifying primary key
- 19:19so let us
- 19:22look into that so on the
- 19:25strong entity set that reduces to schema
- 19:28with the same attributes is student so
- 19:31student has id
- 19:33name and total credit
- 19:35so which we
- 19:37saw earlier now this gets converted to a
- 19:39schema with id being the
- 19:43primary key
- 19:45the other case of weak entity set
- 19:47section
- 19:48which had three discriminators and true
- 19:51sec course relationship was
- 19:54identified from the strong entity set
- 19:57course
- 19:58borrows the
- 20:00primary key of the course to be defined
- 20:03in terms of this
- 20:05relational schema
- 20:08one moment
- 20:11this borrows
- 20:13the primary key from here
- 20:15and becomes
- 20:17so you can see that
- 20:19in the er model
- 20:21the section did not have
- 20:23course id as an attribute but
- 20:26while we reduce this to the relational
- 20:29schema
- 20:30through this sec course relationship we
- 20:33have borrowed this primary key from
- 20:35course
- 20:36the primary key of course
- 20:38the course id
- 20:40and added that to section to make it a
- 20:42complete relational
- 20:44schema
- 20:49next comes the representation of
- 20:51relationships so we are showing a
- 20:53relationship advisor so which relates
- 20:56instructors to students so naturally
- 20:59every instructor is identified by id
- 21:02every student is identified by id
- 21:05since both of the attributes have the
- 21:07same name id we are
- 21:09calling them as s underscore id and for
- 21:11the student and i underscore id for the
- 21:13instructor so the advisor relation is
- 21:17basically
- 21:18a pairing of these two ids
- 21:21which gives rise to a relationship
- 21:24which looks like this relationship
- 21:26schema which looks like this so we can
- 21:28in general say that if we have a
- 21:29relationship ah
- 21:31in the er model which we want to
- 21:33represent in the
- 21:35schema then we will take
- 21:38we will create a schema which has the
- 21:42primary key of both the sets and put
- 21:44them together and if the names clash we
- 21:47will just change the name with the
- 21:50name of the relation and that will give
- 21:53us the schema for the relationship
- 21:56in this case the advisor
- 21:58so we have seen how to represent entity
- 22:00sets weak entity sets and
- 22:03relationships ah let us look at how do
- 22:05we deal with composite attributes
- 22:07because ah
- 22:09so far we had assumed that
- 22:11the relational schema has attributes and
- 22:14every attribute has a domain
- 22:17ah the type from where its values come
- 22:19so if i have a composite attribute where
- 22:22every attribute has a set of components
- 22:24then the easiest way to handle this is
- 22:26to what is known as flatten
- 22:29the composite attribute so flattening
- 22:31basically is for example if i take a
- 22:34name it has three
- 22:36components so each one of them i can
- 22:39call by
- 22:40given new name name underscore first
- 22:43name name underscore middle initial name
- 22:45underscore last name
- 22:47by prefixing with the attribute name
- 22:51i make the names of these components
- 22:53necessarily unique
- 22:55now
- 22:56after i do the prefixing i might figure
- 22:59out that actually prefixing is not
- 23:01required first name itself is a unique
- 23:03because it does not occur anywhere else
- 23:05if it is then i can i may drop the
- 23:08prefix name but in general i can take
- 23:11the attribute name prefix on the
- 23:13component and just flatten them out make
- 23:15them all attributes each separate
- 23:18attribute so
- 23:20here when we ah flatten out we will have
- 23:24ah first name
- 23:26middle initial last name as you can see
- 23:29these
- 23:32flattened out from here
- 23:35then we have street number
- 23:37street name
- 23:38apartment number flattened out from the
- 23:41street
- 23:42subsequently we have city state zip
- 23:45flattened out from here so all of them
- 23:47flattened out has become separate
- 23:49attributes and flattening is a very
- 23:52straightforward mechanism by which you
- 23:54can convert complex composite attributes
- 23:57into the
- 23:58regular schema design
- 24:02you get into little bit of issue if you
- 24:04have multi valued attribute multivalued
- 24:06attribute is one where one attribute may
- 24:09have multiple values at the same time
- 24:11and the example we talked about
- 24:14is ah
- 24:15a phone number i may have multiple phone
- 24:17numbers
- 24:18so certainly against an attribute i can
- 24:21keep only one value
- 24:23so if i if my attribute is multiple
- 24:25value then the basic idea is to use a
- 24:27separate schema to maintain this
- 24:30multiple values for example if i have to
- 24:32maintain multiple
- 24:34phone numbers of an instructor i may
- 24:36have a separate i may decide to have a
- 24:38separate relation
- 24:40which relates the key of the
- 24:42instructor relation
- 24:44and
- 24:45the attribute that i want to
- 24:47ah maintain multiply so in this
- 24:50relationship in this relation
- 24:52inst
- 24:53underscore phone against the same id
- 24:56i can have
- 24:57different phone numbers so there will be
- 24:58different records which match on the id
- 25:01but do not match on the phone number
- 25:03which gives me the different values that
- 25:05the phone number can take
- 25:07and then
- 25:08this inst phone in conjunction with the
- 25:10instructor relation will actually denote
- 25:15the
- 25:15multivalued
- 25:17phone number attribute so this is just
- 25:20an example showing that
- 25:22for one primary key of an instructor
- 25:26ah one
- 25:27two two two two two
- 25:29and there are two phone numbers so this
- 25:31will basically mean you have two tuples
- 25:33in the new relation
- 25:35so with that we can ah handle multiple
- 25:38multi valued attributes also
- 25:42some of the relationships that we may
- 25:44have modeled which we have done
- 25:47in
- 25:48doing the
- 25:50database er schema
- 25:52could have redundancy for example take a
- 25:55case here we have the instructor
- 25:58and we have the student the advisor
- 26:00relation is incidental here
- 26:02and we have department
- 26:04so we want to say that the instructors
- 26:06belong to
- 26:07certain departments every instructor
- 26:09belongs to one department which is the
- 26:11totality of the relationship here
- 26:13similarly every student belongs to a
- 26:15department totality of the relationship
- 26:16on this side
- 26:18and inst debt
- 26:20ins debt in that context is a
- 26:22relationship
- 26:23which is between instructor and
- 26:26department similarly
- 26:31so we can
- 26:33there is certain redundancy in this
- 26:35because
- 26:36we can get make this simpler if we just
- 26:39take the
- 26:42primary key of this relation and put in
- 26:44here
- 26:47if we do that then basically this become
- 26:50redundant these are normal required so
- 26:52all that you are saying is the
- 26:54instructor has a depth name field which
- 26:57says which department does it belong to
- 27:00so if there is a choice between whether
- 27:02you will keep such
- 27:04relationships or you will
- 27:07actually
- 27:08reduce the redundancy in the schema and
- 27:11involve the
- 27:12primary key of the other relation into
- 27:16your
- 27:17primary table which is instructor or the
- 27:20student here
- 27:23so instead instead of creating a schema
- 27:25for relationships at ins department
- 27:27you will simply add a department name
- 27:30so mind you this is at the er model
- 27:32level you did have a separate
- 27:34relationship but while you reduce it to
- 27:38your relationship relational schema you
- 27:41are reducing that relationship by
- 27:44including the depth name as an attribute
- 27:47in instructor so that is called the
- 27:49reduction of schema which is often used
- 27:54ah for one to one relationship so this
- 27:56is this was ah this is a good if you
- 28:00have many to one relation because this
- 28:02was possible because
- 28:04every instructor has one department so
- 28:07if you just include the department name
- 28:09with the instructor or every student has
- 28:12one department
- 28:14ah so it is possible that way but if you
- 28:17have a one to one relationship
- 28:19then naturally
- 28:21you can do the similar reduction
- 28:23by i by choosing the either side
- 28:26as as the many you know because because
- 28:28the the unique side has to come on the
- 28:30many side the unique side here this is
- 28:33the unique side here
- 28:35because
- 28:36every instructor has a unique department
- 28:38and this is the many side here so the
- 28:40unique side has to attribute has to come
- 28:42in here the unique side primary key has
- 28:44to come in here so instead of ah
- 28:49so you can
- 28:50apply the same principle to a one to one
- 28:52relationship by treating any one of them
- 28:54as a many side
- 28:56and add the extra attribute on the other
- 28:58side to get rid of this additional
- 29:01schema the schema corresponding to a
- 29:03relationship set linking a weak entity
- 29:06set to its underlying strong entity set
- 29:08is certainly redundant we have already
- 29:11sent this
- 29:12so this ah
- 29:15is made redundant by including
- 29:18the
- 29:19primary key of the identifying relation
- 29:23identifying entity set in the weak
- 29:25entity set
- 29:27so that is another reduction
- 29:29of schema that can be
- 29:31done
- 29:32so to summarize ah
- 29:35we have in this module
- 29:37illustrated the entity relationship
- 29:40diagram which are very nice ways of
- 29:43graphically representing what we see in
- 29:46the
- 29:47real world
- 29:49so it has graphical representation of
- 29:51entity set
- 29:53attributes
- 29:54the key attributes primary key
- 29:56attributes
- 29:58the weak entity sets
- 30:00and
- 30:01the relationships
- 30:05along with the cardinality information
- 30:08and then we have shown that using
- 30:11certain reduction rules
- 30:14how we can easily reduce this
- 30:17entity relationship diagram or entity
- 30:19relationship model
- 30:22into the
- 30:23traditional
- 30:24relational schema
- 30:26and we have seen that both the entity
- 30:29sets
- 30:30as well as the relationship sets become
- 30:33relational schemas
About this transcript
This page contains the full transcript of Entity-Relationship Model/2 by Data Base Management System - IITKGP, generated from the public captions YouTube serves with the video. The transcript has 3,883 words across 757 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.